[英]How do I sort this array in JavaScript?
我該如何排序這個數組?
[
{id : 1, start : 60, end : 120},
{id : 2, start : 100, end : 240},
{id : 3, start : 700, end : 720}
]
更新:所以如果我的數組看起來像這樣,我可以根據起始值對其進行排序嗎?
[{
1:{start : 60, end : 120},
2:{start : 100, end : 240},
3:{start : 700, end : 720}
}]
你有什么是一系列的對象。 您必須指定要對其進行排序的方式。
無論如何,你可以使用sort
方法:
var data = [{id : 1, start : 60, end : 120}, {id : 2, start : 100, end : 240},{id : 3, start : 700, end : 720}];
function sortByStart(a, b){
return a.start - b.start;
}
data.sort(sortByStart);
您可能想要一種方法來對可能具有相同起始值的對象進行排序:
[
{id : 1, start : 60, end : 120},
{id : 2, start : 100, end : 240},
{id : 3, start : 700, end : 720}
]
A.sort(function(a, b){
return a.start-b.start || a.end-b.end || a.id-b.id;
});
實際上現在你有一個偽數組對象的數組。 但是你可以將該對象轉換為真實數組,對其進行排序,然后轉換回來:
var originalArray = [{
1:{start : 60, end : 120},
2:{start : 700, end : 720},
3:{start : 100, end : 240}
}];
var pseudoArray = originalArray[0];
var arrayToSort = [];
for (var key in pseudoArray) {
arrayToSort.push(pseudoArray[key]);
}
arrayToSort.sort(function(left, right) {
return left.start - right.start || left.end - right.end;
});
var resultPseudoArray = {};
for (var i = 0; i < arrayToSort.length; i++) {
resultPseudoArray[i + 1] = arrayToSort[i];
}
var resultArray = [resultPseudoArray];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.