我有一个名为canvasObjects
的对象数组。
每个对象都有一个名为z
的属性。
我希望使用sort()
方法基于对象的z
属性对该数组进行排序。如何实现?
我有一个名为canvasObjects
的对象数组。
每个对象都有一个名为z
的属性。
我希望使用sort()
方法基于对象的z
属性对该数组进行排序。如何实现?
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);} );
请查看此文章
我看到这里已经有其他的回答,但是我发现以下方法最为有效。
升序:
canvasObjects.sort(function(a,b) { return parseFloat(a.z) - parseFloat(b.z) } );
Descending :
canvasObjects.sort(function(a,b) { return parseFloat(b.z) - parseFloat(a.z) } );
var arr = [{z:2},{z:4},{z:5},{z:1},{z:3}];
arr.sort(function(a,b) {return a.z - b.z});
以上代码将数字按1,2,3,4,5的顺序排序。要反转顺序,请将其改为返回"b.z - a.z"。