簡體   English   中英

如何對包含數組的JavaScript對象進行排序?

[英]How to sort javascript object which contains arrays?

我有一個稱為類的對象,它看起來像這樣:

Object {d1: Array[6], a1: Array[6]};

我添加了一個新數組: classes.b1 = [{"id":1,"vprasan":true},{"id":2,"vprasan":true}]

我如何對這個對象進行排序,所以看起來像這樣: Object {a1: Array[6], b1: Array[6], d1: Array[6]};

你不能 JavaScript對象中屬性的順序未定義。

ECMAScript第三版(pdf)中對象的定義:

4.3.3對象
對象是對象類型的成員。 它是屬性的無序集合,每個屬性都包含原始值,對象或函數。 存儲在對象屬性中的函數稱為方法。

正如在另一個答案中指出的那樣,您無法對對象進行排序,因此當對象固有地無序時,它會以一種特定的方式“看起來”。 但是,我對您的問題的解釋較為寬松。 在我看來,您想按對象鍵,“ a1”,“ b1”,“ d1”等進行排序。這樣做很容易,然后您可以根據已排序的鍵處理對象:

var classes = {d1: ['item1'], a1: ['item1','item2']};
classes.b1 = ['item1', 'item2', 'item3'];

var keys = Object.keys(classes);
keys.sort();

for (var i=0, n=keys.length; i<n; i++) {
    console.log(keys[i]);
    console.log(classes[keys[i]].length);
}

輸出:

a1
2
b1
3
d1
1

是的,如果順序很重要,您必須將其放在數組中:

var classes = [
    {name: 'a1', value: Array[6]},
    {name: 'b1', value: Array[6]},
    {name: 'd1', value: Array[6]}
];

然后研究這個問題進行排序。

Javascript-按數組的一個屬性按字母順序對數組中的對象進行排序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM