Saturday, April 11, 2020

sort() Array Method

Document
sort1

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); လို့ပြင်ရေးလိုက်ရင်ရပြီ ဖြစ်ပါသည်။
sort2

No comments:

Post a Comment