JavaScript စကားအစု အစီအစဉ်
- ပြီးပိုင်း JS အုပ်စု ရှာဖွေ
- နောက်ပိုင်း JS အုပ်စု အပတ်
sort()
အမှုဆောင် အမျိုးမျိုးကို အသုံးပြုရသည်။
စကေးအသင်း စုစုပေါင်းစား
sort()
အစားကြောင်းအမှတ် အရ စကေးအသင်းကို စုစုပေါင်းစားသည်။
အကြောင်းပြချက်
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序
反转数组
reverse()
方法反转数组中的元素。
您可以使用它以降序对数组进行排序:
အကြောင်းပြချက်
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序 fruits.reverse(); // 反转元素顺序
数字排序
默认地,sort()
函数按照字符串顺序对值进行排序。
该函数很适合字符串("Apple" 会排在 "Banana" 之前)。
不过,如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1"。
正因如此,sort()
方法在对数值排序时会产生不正确的结果。
我们通过一个比值函数来修正此问题:
အကြောင်းပြချက်
ကန့်ကွက် အထား ပြန်လည်စီးပွားစေခြင်း: အထား ပြန်လည်စီးပွားစေခြင်း:
使用相同的技巧对数组进行降序排序:
အကြောင်းပြချက်
ကန့်ကွက် အထား ပြန်လည်စီးပွားစေခြင်း: var points = [40, 100, 1, 5, 25, 10];
比值函数
比较函数的目的是定义另一种排序顺序。
比较函数应该返回一个负,零或正值,这取决于参数:
function(a, b){return a-b}
当 sort()
函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。
实例:
当比较 40 和 100 时,sort()
方法会调用比较函数 function(40,100)。
该函数计算 40-100,然后返回 -60(负值)。
排序函数将把 40 排序为比 100 更低的值。
အော်လိုက်ပါသော စကာတင် အချက်အလက်များ ကို အကြမ်းအားလျှင် အော်လိုက်ပါ ပြင်းအားလျှင် အော်လိုက်ပါ စစ်ဆေးပါ
<button onclick="myFunction1()">ကိုယ်စားပြုစာမူအရ အကြမ်းအားလျှင် အော်လိုက်ပါ</button> <button onclick="myFunction2()">ကိုယ်စားပြုစာမူအရ အကြမ်းအားလျှင် ပြင်းအားလျှင် အော်လိုက်ပါ</button> <p id="demo"></p> <script> ကန့်ကွက် အထား ပြန်လည်စီးပွားစေခြင်း: 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>
以随机顺序排序数组
အကြောင်းပြချက်
ကန့်ကွက် အထား ပြန်လည်စီးပွားစေခြင်း: အစီအစဉ် အနက် အခြား အထား ပြန်လည်စီးပွားစေခ�င်း
points.sort(function(a, b){return 0.5 - Math.random()});
အစီအစဉ် အနက် အမြင့်ဆုံး(သို့မဟုတ် အနည်းဆုံး) အတိုင်း ရှာဖွေရန်
JavaScript တွင် အစီအစဉ် အနက် အမြင့်ဆုံး သို့မဟုတ် အနည်းဆုံး အတိုင်း ရှာဖွေရန် အင်တာနက် အသုံးချမှု မရှိ
သို့သော်လည်း အစီအစဉ် အား ပြန်လည်စီးပွားစေခြင်း ပြီးနောက် အကြီးအမြင့် သို့မဟုတ် အနည်းဆုံး အတိုင်း အကြီးအမြင့် အတိုင်း အရင်းမြစ် ကို အသုံးပြုနိုင်
အကြောင်းပြချက်
ကန့်ကွက် အထား ပြန်လည်စီးပွားစေခြင်း: အထား ပြန်လည်စီးပွားစေခြင်း: points.sort(function(a, b){return a - b}); // အခြားတွင် points[0] တွင် အနည်းဆုံး ပါဝင်သည်
// နှင့် points[points.length-1] တွင် အမြင့်ဆုံး ပါဝင်သည်
အကြောင်းပြချက်
ကန့်ကွက် အထား ပြန်လည်စီးပွားစေခြင်း: var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // အခြားတွင် points[0] တွင် အမြင့်ဆုံး ပါဝင်သည်
// နှင့် points[points.length-1] တွင် အနည်းဆုံး ပါဝင်သည်
သင် အစီအစဉ် အနက် အမြင့်ဆုံး သို့မဟုတ် အနည်းဆုံး ရှာဖွေရန် အစီအစဉ် အား ပြန်လည်စီးပွားစေခြင်း အကျိုးဆက် အနည်းဆုံး ဖြစ်ပါသည်。
သင် အစီအစဉ် အနက် Math.min() ကို အသုံးပြုနိုင် သင် Math.max() ကို အစီအစဉ် အနက် အသုံးပြုနိုင်
Math.max.apply
အကြောင်းပြချက်
function myArrayMax(arr) { အစီအစဉ် အနက် အမြင့်ဆုံး ရှာဖွေရန်: }
return Math.max.apply(null, arr);
နှင့် Math.max.apply([1, 2, 3])
。
Math.max(1, 2, 3)
သင် အစီအစဉ် အနက် Math.min() ကို အသုံးပြုနိုင် Math.min.apply
အစီအစဉ် အနက် အနည်းဆုံး ရှာဖွေရန်:
အကြောင်းပြချက်
function myArrayMin(arr) { return Math.min.apply(null, arr); }
Math.min.apply([1, 2, 3])
နှင့် Math.min(1, 2, 3)
。
ကျွန်ုပ်၏ Min / Max JavaScript နည်းလမ်း
အများဆုံး ပြောင်းလဲခြင်း နည်းလမ်း မှာ 'ကူညီ' နည်းလမ်း ဖြစ်ပါသည်。
ဒါသည် အစီအစဉ် ကို လည်းကောင်း အနက်တစ်ခု ကို လည်းကောင်း ရှာဖွေသော အကြောင်းကြားခြင်း ဖြစ်ပါသည်:
အကြောင်းကြားခြင်း(Max ရှာဖွေရာ)
function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }
ဒါသည် အစီအစဉ် ကို လည်းကောင်း အနက်တစ်ခု ကို လည်းကောင်း ရှာဖွေသော အကြောင်းကြားခြင်း ဖြစ်ပါသည်:
အကြောင်းကြားခြင်း(Min ရှာဖွေရာ)
function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min; }
排序对象数组
JavaScript 数组经常会包含对象:
အကြောင်းပြချက်
var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
即使对象拥有不同数据类型的属性,sort()
方法仍可用于对数组进行排序。
解决方法是通过比较函数来对比属性值:
အကြောင်းပြချက်
cars.sort(function(a, b){return a.year - b.year});
အခြား ကို နှင့် အဖြစ် အသုံးပြုခြင်း ပို၍ ပိုမိုလိုအပ်သည်:
အကြောင်းပြချက်
cars.sort(function(a, b){ var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); if (x < y) {return -1;} if (x > y) {return 1;} return 0; });
- ပြီးပိုင်း JS အုပ်စု ရှာဖွေ
- နောက်ပိုင်း JS အုပ်စု အပတ်