Ric*_*nop 3 javascript internet-explorer
我在js中有简单的自定义排序功能:
function compareDesc(a, b) {
return a.value < b.value;
}
Run Code Online (Sandbox Code Playgroud)
然后我试图对一系列字典进行排序:
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);
Run Code Online (Sandbox Code Playgroud)
它适用于 Chrome 和 Firefox,我得到:
250
3
0
Run Code Online (Sandbox Code Playgroud)
但在所有版本的 IE 中我得到:
0
250
3
Run Code Online (Sandbox Code Playgroud)
所以排序不起作用。任何想法为什么?
最好返回 1、0 和 -1 而不是仅返回trueand false:
function compareDesc(a, b) {
if (a.value < b.value){
return 1;
}
else if(a.value > b.value)
{
return -1;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是一个例子:http : //jsfiddle.net/2wwBF/2
PS JS 文档中的 sort 函数示例提出如下方式:
function compareDesc(a, b) {
return a.value - b.value
}
Run Code Online (Sandbox Code Playgroud)