2016-05-07 10 views
-5

誰も私に2行目を説明できますか? これがないと正しく動作しません。このコードは何を意味していますか? JavaScript

dataStuff.forEach(function (a) { 
    grouped[a.Tag] = grouped[a.Tag] || []; 
    grouped[a.Tag].push(a); 
}); 
+1

グループ化された[a.Tag] .push(a);が最初に行うことを説明してください。あなたの答えは、この非常に線の理解に頼っています。 – zerkms

+0

何が正しく動作しませんか?入力と期待される出力は何ですか?問題は非常に不明です。 – freakish

答えて

1
dataStuff.forEach(function (a) { 
    grouped[a.Tag] = grouped[a.Tag] || []; //if grouped[a.Tag] array is undefined make it an array 
    grouped[a.Tag].push(a);    //try to push into array. 
}); 

あなたのコードを説明します。

grouped[a.Tag].push(a);、配列grouped[a.Tag]push値になっています。この場合、grouped[a.Tag]配列が未定義の場合は、grouped[a.Tag] is undefinedというエラーが発生します。この問題を克服するために、この行は

grouped[a.Tag] = grouped[a.Tag] || [];を使用します。すべてgrouped[a.Tag]で定義されていない場合

ここgrouped[a.Tag] || []

は、あなたの上の行は、新しい配列を作成することです

grouped[a.Tag] = [];と同等になります。

その他の場合、grouped[a.Tag]が定義されている場合、何もする必要はありません。

grouped[a.Tag]が定義されていない場合は、新しい配列を作成してください。それ以外の場合は、何もしないでください。

関連する問題