var fruit=[7,10,32,6,9,4];
document.write(fruit+'<br>');
fruit.sort(sortFun);
document.write(fruit);
function sortFun(ar1,ar2){
if(ar1>ar2){
return 1;
}else if(ar1<ar2){
return -1;
}else{
return 0;
}
}
Wie ordnet dieser Code die Array-Elemente an? Bitte geben Sie mir eine ausführliche Erkl?rung. Vielen Dank
學(xué)習(xí)是最好的投資!
為了幫助理解,你可以試下直接調(diào)用sort方法:
var fruit=[7,10,32,6,9,4];
fruit.sort();
返回結(jié)果是:[10, 32, 4, 6, 7, 9]
而不是期待中的:[ 4, 6, 7, 9, 10, 32]
為什么會這樣呢?
因為這是數(shù)組原型鏈上的sort()方法,即Array.prototype.sort()
。
如何深入研究這個sort()方法:
1.可以去看mdn文檔https://developer.mozilla.org...
2.可以去看《javascript高級程序設(shè)計》,但是高設(shè)講得不全
3.最暴力的方法是去看ECMA2015規(guī)范:http://www.ecma-international...
4.如果你實在覺得看得頭疼了,可以看下我去年寫的博客后再重復(fù)1,2,3步:http://www.jianshu.com/p/b50a...
希望能幫助到你...
fruit.sort(sortFun);
sort 數(shù)組的排序方法;
用法:
var arr=[];
arr.sort(function(a,b){
})
比如從小到大:
var arr=[9,5,6];
arr.sort(function(a,b){
return a-b;
})
fruit.sort(sortFun);中的sortFun就相當(dāng)于arr.sort(function(a,b){})
中的function(a,b){};
if(ar1>ar2){
return 1;
}else if(ar1<ar2){
return -1;
}else{
return 0;
}就相當(dāng)于return a-b;