Document
sort()-Array Method
sort method ကို တန်ဖိုးတွေကို ascending or descending စီခြင်တဲ့အခါသုံးပါတယ်။
ဥပမာ let names = [“mane”,”salah”,”kane”,”firmino”] ဆိုတဲ့ names array ရှိတယ်ဆိုပါစို့။
let names = [“mane”,”salah”,”kane”,”firmino”]
names.sort();
console.log(names);
ဆိုရင် output က [“firmino”,”kane”,”mane”,”salah”] ပြီးထွက်လာပါလိမ့်မယ်။
နောက်ထပ် ဥပမာ let scores = [20,30,60,5,40,90] ဆိုတဲ့ scores array ရှိတယ်ဆိုပါစို့။
let scores = [20,30,60,5,40,90]
scores.sort();
console.log(scores);
ဆိုရင် output က [20,30,40,5,60,90] ဆိုပြီးထွက်လာပါလိမ့်မယ်။ sort() ရဲ့အားနည်းချက်က သူက ရှေ့က number တစ်လုံးစာကို ပဲရေတွက်ပေးနိုင်တာပါ။ နောက်ထပ် ဥပမာ
let players = [
{name:”mane”,score:90},
{name:”salah”,score:100},
{name:”kane”,score:70},
{name:”firmino”,score:30},
{name:”arnold”,score:8}
];
ဆိုပါစို့။
players.sort((a,b)=>{
f(a.score>b.score){
return -1;
else if(b.score>a.score){
return 1;
}else{
return 0;
}
});
console.log(players);
ဒီလိုဆိုရင် output က
0: {name: "salah", score: 100}
1: {name: "mane", score: 90}
2: {name: "kane", score: 70}
3: {name: "firmino", score: 30}
4: {name: "arnold", score: 8}
ဆိုပြီးထွက်ပါလိမ့်မယ်။
players.sort((a,b)=>{
if(a.score>b.score){
return -1;
}
a variable က အငယ် ဖြစ်ပြီးတော့ b variable ကအကြီးဖြစ်ပါတယ် ။ a.score က b.score ထက် ကြီးရင် -1 ဆိုပြီး return ပြန်ထားတဲ့ အတွက် b.score တန်ဖိုးကိုရှေ့ကထားပြီး a.score တန်ဖိုးကို နောက်ကထားစီဖို့ ဆိုလိုတာပါ။
else if(b.score>a.score){
return 1;
}
return 1 လို့ return ပြန်ထားတဲ့အတွက် b.score က a.score ထက်ကြီးရင် နေရာမပြောင်းတော့ပဲ b.score ပြီးရင် a.score စီမယ်လို့ဆိုလိုတာပါ။
else{
return 0;
}
return 0 လို့ပြန်ထားတဲ့အတွက် ညီရင် ဘာအလုပ်မှမလုပ်ဘူးလို့ဆိုလိုတာပါ။
players.sort((a,b)=>b-a);
ဒီလိုရေးရင်လည်း output ကတူတူပဲထွက်ပါလိမ့်မယ်။ b - a လို့ပြောထားတဲ့အတွက် ကြီးစဉ်ငယ်လိုက်စီပါလိမ့် မယ်။ ငယ်စဉ်ကြီးလိုက် စီခြင်ရင် b-a လို့ရေးလိုက်ပါ။ ထို့ကြောင့် ကျနော်တို့ ဥပမာ ၂ က ငယ်စဉ်ကြီးလိုက် စီခြင် ရင် scores.sort((a,b)=>a-b); လို့ပြင်ရေးလိုက်ရင်ရပြီ ဖြစ်ပါသည်။
No comments:
Post a Comment