我有以下数组:
var array = [{
"name": "Item 1",
"LineNumber": "10",
"size": "5"
},
{
"name": "Item 2",
"LineNumber": "30",
"size": "5"
},
{
"name": "Item 3",
"LineNumber": "30",
"size": "4"
},
{
"name": "Item 4",
"LineNumber": "20",
"size": "5"
}]
使用以下内容,我可以按行号排序:
array.sort(function(a, b) {
return a.LineNumber - b.LineNumber;
});
在某些拥有大量数据的情况下,我遇到了一个问题,即项目将共享相同的行号,但它们的大小将不同(即第2项和第3项)。我想首先按行号排序,然后根据返回的第一个排序方式按大小排序。是否有可能在一种比较函数中实现这一目标?
答案 0 :(得分:7)
试试这个:
array.sort(function(a, b) {
if (a.LineNumber == b.LineNumber)
return a.size - b.size;
return a.LineNumber - b.LineNumber;
});
答案 1 :(得分:0)
您只需要为sort函数添加更多逻辑。
array.sort(function(a, b) {
if (a.LineNumber === b.LineNumber) {
return a.size - b.size;
}
return a.LineNumber - b.LineNumber;
});