假設我有以下對象的JavaScript數組:什麼是正確的方式來選擇一個屬性對對象進行
var oData = [
{field1 : "root", field2: "qqqqq", field3: "aaaaa", field4: "zzzzz"},
{field1 : "root", field2: "qqqqq", field3: "aaaaa", field4: "xxxxx"},
{field1 : "root", field2: "qqqqq", field3: "sssss", field4: "ccccc"},
{field1 : "root", field2: "wwwww", field3: "sssss", field4: "vvvvv"},
{field1 : "root", field2: "wwwww", field3: "ddddd", field4: "bbbbb"},
{field1 : "root", field2: "wwwww", field3: "ddddd", field4: "nnnnn"},
{field1 : "root", field2: "wwwww", field3: "fffff", field4: "mmmmm"}
];
什麼是最好的執行方式
- 拷貝這個數組到一個新的數組的單個屬性(
field1
,field2
,field3
等),和 - 此所得的陣列將只包含具有不同VAL列表ues
I.e.所產生的陣列將
var oField1 = [
{field1 : "root"}
]
var oField2 = [
{field2 : "qqqqq"},
{field2 : "wwwww"}
]
var oField3 = [
{field3 : "aaaaa"},
{field3 : "sssss"},
{field3 : "ddddd"},
{field3 : "fffff"}
]
(我已經添加了三個例子只是爲了說明我的努力實現的。如果我能爲一個屬性做到這一點,我當然能做到這一點對所有;-))
我可以通過數組循環,推只有唯一值的新陣列,或者我可以克隆陣列,刪除不需要的屬性和切片製作獨一無二的,但這些方法感到有點「髒」
有沒有一種優雅而好的方法來達到上述目的?
在此先感謝!
「我可以通過數組循環,推只有唯一值到新陣列」 - 做到這一點。 – tymeJV
我之所以不這樣做的原因是,它需要更多的代碼行,因此看起來有點像一個骯髒的解決方案。我更尋找乾淨優雅的東西:) – Qualiture