[英]IE js sorting array by custom function doesn't work
我在js中有简单的自定义排序功能:
function compareDesc(a, b) {
return a.value < b.value;
}
然后我尝试对一组字典进行排序:
var test = [];
test.push({value: 0, foo: "bar"});
test.push({value: 250, foo: "bar"});
test.push({value: 3, foo: "bar"});
test.sort(compareDesc);
alert(test[0].value);
alert(test[1].value);
alert(test[2].value);
它适用于Chrome和Firefox,我得到:
250
3
0
但在IE的所有版本中,我得到:
0
250
3
所以排序不起作用。 有什么想法吗?
最好返回1,0和-1而不是true
和false
:
function compareDesc(a, b) {
if (a.value < b.value){
return 1;
}
else if(a.value > b.value)
{
return -1;
}
return 0;
}
这是一个例子: http : //jsfiddle.net/2wwBF/2
PS JS文档中的sort函数示例提出了以下方法:
function compareDesc(a, b) {
return a.value - b.value
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.