JavaScript Sorting Arrays
Array တစ်ခုစီခွဲခြင်း။
နည်းလမ်း သည် sort()
array တစ်ခုကို အက္ခရာစဉ်အလိုက် စီသည်-
ဥပမာ
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
Array တစ်ခုကို ပြောင်းပြန်လှန်ခြင်း။
နည်းလမ်း သည် reverse()
array တစ်ခုရှိ element များကို ပြောင်းပြန်လှန်သည်။
array တစ်ခုကို ကြီးစဉ်ငယ်လိုက် စီရန် ၎င်းကို သင်သုံးနိုင်သည်-
ဥပမာ
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();
ဂဏန်းအမျိုးအစား
ပုံမှန်အားဖြင့်၊ sort()
function သည် တန်ဖိုးများကို strings များအဖြစ် အမျိုးအစားခွဲသည် ။
၎င်းသည် ကြိုးများအတွက် ကောင်းမွန်စွာ အလုပ်လုပ်သည် ("Apple" သည် "Banana" မတိုင်မီ ဖြစ်သည်)။
သို့သော်၊ ဂဏန်းများကို ကြိုးများအဖြစ် စီထားပါက "25" သည် "100" ထက် ပိုကြီးသောကြောင့် "2" သည် "1" ထက် ပိုကြီးသောကြောင့်ဖြစ်သည်။
ထို့အတွက်ကြောင့် ၊ sort()
နံပါတ်များကို စီထားသောအခါတွင် မှားယွင်းသောရလဒ်ထွက်ရှိလာမည်ဖြစ်သည်။
နှိုင်းယှဥ်လုပ်ဆောင်ချက်ကို ပေးခြင်းဖြင့် ၎င်းကို သင်ပြင်ဆင်နိုင်သည် -
ဥပမာ
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});
Array မှ ကြီးစဉ်ငယ်လိုက် စီရန် တူညီသောလှည့်ကွက်ကို အသုံးပြုပါ-
ဥပမာ
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a});
နှိုင်းယှဉ်လုပ်ဆောင်ချက်
နှိုင်းယှဥ်လုပ်ဆောင်မှု၏ ရည်ရွယ်ချက်မှာ အခြားရွေးချယ်စရာ အစီအစဥ်တစ်ခုကို သတ်မှတ်ရန်ဖြစ်သည်။
နှိုင်းယှဉ်မှုလုပ်ဆောင်ချက်သည် အကြောင်းပြချက်များပေါ်မူတည်၍ အနုတ်၊ သုည သို့မဟုတ် အပြုသဘောတန်ဖိုးကို ပြန်ပေးသင့်သည်-
function(a, b){return a - b}
လုပ်ဆောင်ချက်သည် တန်ဖိုးနှစ်ခုကို နှိုင်းယှဉ် သောအခါ sort()
၊ ၎င်းသည် တန်ဖိုးများကို နှိုင်းယှဉ်လုပ်ဆောင်မှုသို့ ပေးပို့ပြီး ပြန်ပေးသည့်တန်ဖိုး (အနုတ်လက္ခဏာ၊ သုည၊ အပြုသဘော) တန်ဖိုးများအလိုက် တန်ဖိုးများကို အမျိုးအစားခွဲသည်။
ရလဒ်က အနုတ်လက္ခဏာ a
ဖြစ်လျှင် ရှေ့တွင် စီထားသည်
b
။
ရလဒ်က အပေါင်းလက္ခဏာဆောင် b
ရင် ရှေ့ကို စီ a
ပါ။
ရလဒ်သည် 0 ဖြစ်ပါက တန်ဖိုးနှစ်ခု၏ အမျိုးအစားအစီအစဥ်ဖြင့် ပြောင်းလဲမှုမရှိပါ။
ဥပမာ-
နှိုင်းယှဥ်မှုလုပ်ဆောင်ချက်သည် array ရှိ တန်ဖိုးအားလုံးကို တစ်ကြိမ်လျှင် တန်ဖိုးနှစ်ခု နှိုင်းယှဉ်သည် (a, b)
။
40 နှင့် 100 ကို နှိုင်းယှဥ်သောအခါ၊ sort()
method သည် နှိုင်းယှဉ်လုပ်ဆောင်ချက် (40၊ 100) ကို ခေါ်သည်။
လုပ်ဆောင်ချက်သည် 40 - 100 ကို တွက်ချက်ပြီး (a - b)
ရလဒ်သည် အနှုတ် (-60) ဖြစ်သောကြောင့်၊ အမျိုးအစားခွဲသည့်လုပ်ဆောင်ချက်သည် 100 ထက်နိမ့်သောတန်ဖိုးအဖြစ် 40 ကို စီမည်ဖြစ်သည်။
ဂဏန်းများနှင့် အက္ခရာစဉ်အလိုက် စီထားခြင်းကို စမ်းသပ်ရန် ဤကုဒ်အတိုအထွာကို သင်အသုံးပြုနိုင်သည်-
<button onclick="myFunction1()">Sort Alphabetically</button>
<button
onclick="myFunction2()">Sort Numerically</button>
<p id="demo"></p>
<script>
const points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = points;
function
myFunction1() {
points.sort();
document.getElementById("demo").innerHTML
= points;
}
function myFunction2() {
points.sort(function(a, b){return
a - b});
document.getElementById("demo").innerHTML = points;
}
</script>
Random Order တွင် Array တစ်ခုစီခြင်း
ဥပမာ
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return 0.5 - Math.random()});
Fisher Yates နည်းလမ်း
အထက်ဖော်ပြပါ ဥပမာ၊ array .sort() သည် တိကျမှုမရှိပါ၊ ၎င်းသည် အခြားနံပါတ်များထက် အချို့သောနံပါတ်များကို ဦးစားပေးပါမည်။
ရေပန်းအစားဆုံး မှန်ကန်သောနည်းလမ်းကို Fisher Yates shuffle ဟုခေါ်ပြီး ၁၉၃၈ ခုနှစ်အစောပိုင်းတွင် ဒေတာသိပ္ပံတွင် စတင်မိတ်ဆက်ခဲ့သည်။
JavaScript တွင် ဤနည်းလမ်းကို ဘာသာပြန်နိုင်သည်။
ဥပမာ
const points = [40, 100, 1, 5, 25, 10];
for (let i = points.length -1; i > 0;
i--) {
let j = Math.floor(Math.random() * i)
let k = points[i]
points[i] = points[j]
points[j] = k
}
အမြင့်ဆုံး (သို့မဟုတ် အနိမ့်ဆုံး) Array တန်ဖိုးကို ရှာပါ။
array တစ်ခုတွင် max သို့မဟုတ် min value ကိုရှာဖွေရန်အတွက် built-in function မရှိပါ။
သို့ရာတွင်၊ သင်သည် array တစ်ခုကို စီခွဲပြီးနောက်၊ အမြင့်ဆုံးနှင့် အနိမ့်ဆုံးတန်ဖိုးများကို ရယူရန် အညွှန်းကိန်းကို အသုံးပြုနိုင်သည်။
ကြီးလိုက် စီခြင်း-
ဥပမာ
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});
// now points[0] contains the lowest value
// and points[points.length-1] contains the highest value
ကြီးစဉ်ငယ်လိုက် စီခြင်း-
ဥပမာ
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a});
// now points[0] contains the highest value
// and points[points.length-1] contains the lowest value
အမြင့်ဆုံး (သို့) အနိမ့်ဆုံးတန်ဖိုးကို သင်ရှာလိုလျှင် array တစ်ခုလုံးကို စီရန်သည် အလွန်ထိရောက်မှုမရှိသောနည်းလမ်းဖြစ်သည်။
Array တစ်ခုပေါ်တွင် Math.max() ကိုအသုံးပြုခြင်း။
Math.max.apply
array တစ်ခုတွင် အမြင့်ဆုံး နံပါတ်ကို ရှာရန် သင်သုံးနိုင်သည် -
ဥပမာ
function myArrayMax(arr) {
return Math.max.apply(null, arr);
}
Math.max.apply(null, [1, 2, 3])
နှင့် ညီမျှသည် Math.max(1, 2, 3)
။
Array တစ်ခုပေါ်တွင် Math.min() ကိုအသုံးပြုခြင်း။
Math.min.apply
array တစ်ခုတွင် အနိမ့်ဆုံးနံပါတ်ကို ရှာရန် သင်သုံးနိုင်သည် -
ဥပမာ
function myArrayMin(arr) {
return Math.min.apply(null, arr);
}
Math.min.apply(null, [1, 2, 3])
နှင့် ညီမျှသည် Math.min(1, 2, 3)
။
My Min/Max JavaScript Methods
အမြန်ဆုံးဖြေရှင်းနည်းမှာ "အိမ်လုပ်" နည်းလမ်းကို အသုံးပြုရန်ဖြစ်သည်။
ဤလုပ်ဆောင်ချက်သည် တွေ့ရှိသည့်တန်ဖိုးတစ်ခုစီနှင့် တန်ဖိုးတစ်ခုစီကို နှိုင်းယှဉ်သည့် array မှတဆင့် လှည့်ပတ်သည်-
ဥပမာ (Max ကိုရှာပါ)
function myArrayMax(arr) {
let len = arr.length;
let max = -Infinity;
while (len--) {
if (arr[len] > max) {
max = arr[len];
}
}
return max;
}
ဤလုပ်ဆောင်ချက်သည် တွေ့ရှိသော အနိမ့်ဆုံးတန်ဖိုးနှင့် တန်ဖိုးတစ်ခုစီကို နှိုင်းယှဉ်သည့် array တစ်ခုမှတဆင့် လှည့်ပတ်သည်-
ဥပမာ (Find Min)
function myArrayMin(arr) {
let len = arr.length;
let min = Infinity;
while (len--) {
if (arr[len] < min) {
min = arr[len];
}
}
return min;
}
Object Array များကို စီခြင်း
JavaScript အခင်းအကျင်းများတွင် မကြာခဏ အရာဝတ္ထုများ ပါဝင်သည်-
ဥပမာ
const cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}
];
အရာဝတ္ထုများသည် မတူညီသော ဒေတာအမျိုးအစားများ၏ ဂုဏ်သတ္တိများ ရှိလျှင်ပင်၊ sort()
array ကို စီရန်နည်းလမ်းကို အသုံးပြုနိုင်သည်။
ဖြေရှင်းချက်မှာ ပိုင်ဆိုင်မှုတန်ဖိုးများကို နှိုင်းယှဉ်ရန် နှိုင်းယှဥ်လုပ်ဆောင်ချက်ကို ရေးရန်ဖြစ်သည်။
ဥပမာ
cars.sort(function(a, b){return a.year - b.year});
စာကြောင်းဂုဏ်သတ္တိများကို နှိုင်းယှဉ်ခြင်းသည် အနည်းငယ်ပိုမိုရှုပ်ထွေးသည်-
ဥပမာ
cars.sort(function(a, b){
let x = a.type.toLowerCase();
let y = b.type.toLowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});
Array အကိုးအကား အပြည့်အစုံ
ပြီးပြည့်စုံသော Array အကိုးအကားအတွက်၊ ကျွန်ုပ်တို့ထံ သွားပါ။
JavaScript Array အကိုးအကားကို အပြီးသတ် ပါ။
ကိုးကားချက်တွင် Array ဂုဏ်သတ္တိများနှင့် နည်းလမ်းအားလုံး၏ ဖော်ပြချက်များနှင့် နမူနာများ ပါရှိသည်။