在Chrome中对超过10个对象的数组进行排序

Joh*_*ohs 5 javascript arrays sorting safari google-chrome

[
{"tag":"fujairah","count":1},
{"tag":"worldwide","count":3},
{"tag":"saudi","count":1},
{"tag":"miami","count":1},
{"tag":"rwo-dealer","count":7},
{"tag":"new york","count":2},
{"tag":"surabaya","count":1},
{"tag":"phillippines","count":1},
{"tag":"vietnam","count":1},
{"tag":"norway","count":1},
{"tag":"x","count":1}
].sort(function(a,b){return a.tag>b.tag})
Run Code Online (Sandbox Code Playgroud)

对10个对象的数组进行排序工作正常,一旦对象数超过10,Chrome for Mac中的排序就会失败.Safari在任何阵列大小都失败.(在Firefox中正常工作)

通过javascript排序对象数组的正确方法是什么?

Max*_*Art 3

物品数量并不重要,这可能只是您的情况。只是这不是实现排序功能的正确方法。您应该返回 1(或任何正值,如果第一项“大于”第二项)、-1(或任何负值)或 0(如果两项相等)。尝试这样的事情:

.sort(function(a, b) {
    return a.tag > b.tag ? 1 : (a.tag < b.tag ? -1 : 0);
});
Run Code Online (Sandbox Code Playgroud)

最后一个三元运算符周围的括号实际上不是必需的。