我有一個名爲canvasObjects
的對象數組。基於對象屬性對數組進行排序 - Javascript
每個對象都有一個名爲z
的屬性。
我想根據對象z
對這個數組進行排序。我如何使用sort()
方法做到這一點?
我有一個名爲canvasObjects
的對象數組。基於對象屬性對數組進行排序 - Javascript
每個對象都有一個名爲z
的屬性。
我想根據對象z
對這個數組進行排序。我如何使用sort()
方法做到這一點?
你只需要在一個比較傳遞給排序函數
function compare(a,b) {
if (a.attr < b.attr)
return -1;
if (a.attr > b.attr)
return 1;
return 0;
}
canvasObjects.sort(compare);
或內嵌
canvasObjects.sort(function(a,b) {return (a.attr > b.attr) ? 1 : ((b.attr > a.attr) ? -1 : 0);});
看到這個POST
發送匿名函數返回一個減法的排序方法的財產「z」
var arr = [{z:2},{z:4},{z:5},{z:1},{z:3}];
arr.sort(function(a,b) {return a.z - b.z});
將數字放在z中以1,2,3,4,5順序排列。要反轉該順序,請返回「b.z - a.z」。
嘗試了其他答案張貼在這裏,但我發現以下工作最好。
canvasObjects.sort(function(a,b) { return parseFloat(a.z) - parseFloat(b.z) });