2017-02-22 198 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

好吧,我認爲鏈接中的代碼更加清晰可辨。但我很感謝你的評論。 –

相關問題