基于对象属性的排序数组-Javascript
我有一个名为基于对象属性的排序数组-Javascript,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个名为canvasObjects的对象数组 每个对象都有一个名为z的属性 我想根据对象对数组进行排序z。如何使用sort()方法实现这一点?您只需将一个比较器传递给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
的对象数组
每个对象都有一个名为z
的属性
我想根据对象对数组进行排序
z
。如何使用sort()
方法实现这一点?您只需将一个比较器传递给sort函数即可
function compare(a,b) {
if (a.attr < b.attr)
return -1;
if (a.attr > b.attr)
return 1;
return 0;
}
canvasObjects.sort(compare);
请参见此向排序方法发送匿名函数,该方法返回属性“z”的减法
上面将数字按z的顺序排列为1,2,3,4,5。为了颠倒顺序,使其返回“b.z-a.z”。尝试了此处发布的其他答案,但后来我发现以下方法效果最好 上升:
canvasObjects.sort(function(a,b) { return parseFloat(a.z) - parseFloat(b.z) } );
canvasObjects.sort(function(a,b) { return parseFloat(b.z) - parseFloat(a.z) } );
下降:
canvasObjects.sort(function(a,b) { return parseFloat(a.z) - parseFloat(b.z) } );
canvasObjects.sort(function(a,b) { return parseFloat(b.z) - parseFloat(a.z) } );