2016-04-10 62 views
2

在腳本中,我有一個包含多個其他對象的對象,它們都具有相同的結構。它看起來像這樣:如何通過在節點中的另一個對象中的位置獲取對象的值

wordlist = {word1: {count:2}, 
word2: {count:5}, 
word3: {count:3}, 
word4: {count:2}} 

我要生成每個單詞的只是計數的數組,所以它看起來像[2,5,3,2]。

有什麼辦法可以在Node.js中做到這一點?

我會想象使用for循環每個迭代進入下一個子對象,但我將如何通過它在主對象中的位置來選擇子對象? 在一個數組中,你可以鍵入arrayName [2]來獲得該數組中的第三個條目,是否可能與對象類似?

+3

我敢打賭,它看起來不像那樣,因爲那會給你一個錯誤。在你的鍵/值之間加上':'。你也不應該期待這個數組順序,因爲對象鍵是無序的。 – Andy

+0

[JavaScript對象:通過名稱作爲字符串訪問變量屬性]的可能重複(http://stackoverflow.com/questions/4255472/javascript-object-access-variable-property-by-name-as-string) – Amit

回答

2

您可以遍歷正確對象的鍵並映射count的值。

var wordlist = { word1: { count: 2 }, word2: { count: 5 }, word3: { count: 3 }, word4: { count: 2 } }, 
 
    result = Object.keys(wordlist).map(function (k) { 
 
     return wordlist[k].count; 
 
    }); 
 

 
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>'); 
 

ES6版

var wordlist = { word1: { count: 2 }, word2: { count: 5 }, word3: { count: 3 }, word4: { count: 2 } }, 
 
    result = Object.keys(wordlist).map(k => wordlist[k].count); 
 

 
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>'); 
 

0

另一種方式來做到這一點使用loadash

_.map(單詞表,函數的(a){換貨政... r)a.count;})

相關問題