基于对象属性对数组进行排序 - Javascript
问题描述:
我有一个名为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) });