2016-04-10 5 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番目のエントリを取得できます。同様のことはオブジェクトで可能ですか?

+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){行うための別の方法レトゥrn a.count;})

関連する問題