2017-02-22 199 views
0

我想逐个绘制按y值排序的对象,因此“靠近”的对象不会绘制在具有较低y的对象后面。我有这样的阵列:Javascript。按属性排序对象数组x

List.list = [ 
'idofobject' : { 
    x: 20, 
    y: 28 
}, 
'otheridofobject' : { 
    x: 20, 
    y: 23 
}, 

]; 

我怎样才能按对象的y值对它进行排序?我试图排列它像正常的对象数组,但在这种情况下,我有属性之前的对象的id,所以它不可能。我怎样才能做到这一点,而不删除对象的ID?

+0

你List.list是不正确的,但这个答案是你想要的东西:HTTP://计算器.com/questions/1129216/sort-array-of-objects-by-string-property-value-in-javascript –

+0

数组不能有键。您的列表是语法错误。 –

+0

嗯,但它运作良好。我只是不能排序:/ – Stonoga

回答

2

可以使用Array.Prototype.sort功能,像这样:

List.list.sort(function(a, b) { 
    return a.y - b.y; 
}); 

这将排序使用自定义功能。

如果您需要更多信息,请查看the documentation

2

在一行

list.sort((obj1, obj2) => obj1.y - obj2.y); 
-1

,如果你想突出你可以使用

http://underscorejs.org/#sortBy

+0

链接只有答案是非常有价值的。提供基于链接的相关代码,并且只使用链接来支持实际回答的内容 – charlietfl

+0

好吧,我认为链接中的代码更加清晰可辨。但我很感谢你的评论。 –

相关问题