tay*_*ane 4 javascript arrays sorting
我知道.sort()方法按字母顺序对数组进行排序,就像它是一个字符串一样.即使你的阵列完全由数字组成.
我也明白,要以数字方式对数组进行排序,代码是:
myArray.sort(function (a,b) {
return a-b;
});
Run Code Online (Sandbox Code Playgroud)
问题是我不明白为什么这样做.我写的函数应该带两个参数,'a'和'b',但这些参数来自哪里?阵列?怎么知道这样做?然后,该函数返回一些数字.如果'a'和'b'分别是10和5,我的函数将返回'5'.现在我正在做myArray.sort(5); 这怎么可能在数字上神奇地整理我的整个数组???
谢谢您的帮助.
我写的函数应该带两个参数,'a'和'b',但这些参数来自哪里?
为了确定数组元素所属的顺序,Array.sort
函数从数组中选取元素对,并将它们作为a
和传递给比较函数b
.你的函数返回的结果决定了两个元素放在哪个顺序 - 如果它是负数,那么它知道要放在a
前面b
; 如果它是积极的,它知道放在a
后面b
.实际数字并不重要,只是它是负面的还是正面的.
编写示例的一种不那么令人困惑的方式可能是:
function myComparisonFunction(a, b) {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
myArray.sort(myComparisonFunction);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
716 次 |
最近记录: |