我已经调试了两天我的 JavaScript 代码,现在我发现它可以在 Firefox 中运行。
我已将代码上传到 jsFiddle,您可以对其进行测试 there .
它在 Firefox v23 中运行完美,但在 Chromium v28.0.1500.71 中无法排序。我正在使用 jQuery v1.10.1
我不知道错误是在 sort()
函数上还是在 jQuery 库中。
这应该被报告为 Chromium 中的错误吗?
var data = {
"list": [
{
"title": "a",
"date": "03/08/2010"
},
{
"title": "b",
"date": "31/07/2010",
},
{
"title": "c",
"date": "08/08/2010",
},
{
"title": "d",
"date": "01/08/2010"
},
{
"title": "e",
"date": "11/12/2010"
},
{
"title": "f",
"date": "10/12/2010"
},
{
"title": "g",
"date": "12/12/2010"
},
{
"title": "h",
"date": "14/12/2010"
},
{
"title": "i",
"date": "11/12/2010"
},
{
"title": "j",
"date": "05/08/2010"
},
{
"title": "k",
"date": "03/08/2010"
}
]
};
// Sort
$.each(data, function (key, val) {
val.sort(function(a, b) {
return a.title.toLowerCase() > b.title.toLowerCase();
});
// The object is not sorted here
});
// Print
document.querySelector("pre").textContent =
JSON.stringify(data, null, 4);
最佳答案
你的 sort
比较器坏了。
sort
回调预期返回负数 0
或正数,具体取决于第一个参数是小于、等于还是大于比第二个。
你总是返回一个 bool 值,这不是它应该做的。
关于javascript - 为什么 sort() JavaScript 函数在 Firefox 中有效,但在 Chromium 中无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18387725/