这个JavaScript排序函数是如何工作的?
我在一本书上找到了这个。这里没有很好的解释,特别是“vals.sort(compare)”部分。谁能给我解释一下吗这个JavaScript排序函数是如何工作的?,javascript,Javascript,我在一本书上找到了这个。这里没有很好的解释,特别是“vals.sort(compare)”部分。谁能给我解释一下吗 <script> function compare ( value1, value2) { if (value1 > value2) { return 1; } else if (value2 > value1) { return -1 } else { return
<script>
function compare ( value1, value2) {
if (value1 > value2) {
return 1;
}
else if (value2 > value1) {
return -1
}
else {
return 0;
}
}
var vals = [12,93,41,62,99]
vals.sort(compare)
document.write(vals)
</script>
功能比较(值1、值2){
如果(值1>值2){
返回1;
}
否则如果(值2>值1){
返回-1
}
否则{
返回0;
}
}
var VAL=[12,93,41,62,99]
VAL.sort(比较)
文件写入(VAL)
sort()
时未传递匿名函数或命名函数,则默认情况下会根据每个字符的Unicode
代码点值对值进行排序function(){…}
)或按名称传递函数,如:
function myFunction(){}
[].sort(myFunction)代码>
myFunction()
,因为这将执行函数并传递返回的内容(这不是我们想要的)sort()
的回调函数中,例如,比较(a,b)
,返回
-1
->a小于b
0
->a等于b
1
->a比b大我们可以将compare函数作为sort方法的参数传递,也可以内联编写,例如
<script>
var a = [30,2,1,9,15];
a.sort(function(a,b) { return a-b; });
document.write(a);
</script>
var a=[30,2,1,9,15];
a、 排序(函数(a,b){返回a-b;});
文件。编写(a);
或者我们可以指定compare方法,并像在您的案例中那样显式调用它
调用sort()方法时,它比较两个值。它将值发送到比较函数,并根据返回的(负、零、正)值对值进行排序。@Alex,谢谢!我一直在努力使
代码
正常工作!:)谢谢你的简单解释。@SajibDevnathAkash,欢迎。如果你想让我更详细地解释一些事情,请告诉我。你太好了。谢谢