1. ホーム
  2. javascript

[解決済み] ネストしたforEachループが機能しない

2022-02-28 02:29:13

質問

私はJSONオブジェクトの配列にあるいくつかのデータを持っています。ネストされたforEachループを使用してデータを抽出しようとしています。

データは以下のようにモデル化されています。複数のdataModelsがあり、dataModelsの中に複数のchildNodeがあります。

//this is what an example data looks like
dataModels[0].childNodes[0].appId

以下のようなことをやろうとしています。

dataModels.forEach(function(entry){
    entry.forEach(function(childrenEntry){
      console.log(childrenEntry.appId);
    })
})

しかし、上記はうまくいかず、「'entry'は関数ではない」というエラーが出てしまいます。私がやろうとしていることを達成するために、もっと良い方法はないでしょうか?

解決方法は?

の中の配列をターゲットにしていません。 entry オブジェクトをループする必要があります。 childNodes プロパティを使用します。以下の例をご覧ください。

var dataModels = [];

dataModels[0] = {
    childNodes: []
};

dataModels[0].childNodes[0] = {
    appId: "foo"
};

dataModels.forEach(function(entry){ 
    entry.childNodes.forEach(function(childrenEntry) { // was missing a )
      console.log(childrenEntry.appId);
    });
});

JsFiddleのデモ