2016-04-06 5 views
-3

私はこの返し、このオブジェクトをループへの道を注入し、いくつかの問題を抱えていた:Javascriptで次のオブジェクトをループする方法は?

{ 
    matches: [ 
    { 
     region: 'OCE', 
     platformId: 'OC1', 
     matchId: 122934310, 
     champion: 36, 
     queue: 'TEAM_BUILDER_DRAFT_RANKED_5x5', 
     season: 'SEASON2016', 
     timestamp: 1456100362493, 
     lane: 'BOTTOM', 
     role: 'DUO_SUPPORT' 
    }, 
    { 
     region: 'OCE', 
     platformId: 'OC1', 
     matchId: 122510663, 
     champion: 44, 
     queue: 'TEAM_BUILDER_DRAFT_RANKED_5x5', 
     season: 'SEASON2016', 
     timestamp: 1455751169038, 
     lane: 'BOTTOM', 
     role: 'DUO_SUPPORT' 
    } 
    ], 
    startIndex: 0, 
    endIndex: 2, 
    totalGames: 135 
} 

私はしかし、私はそれを理解できないようですので、私はこのケースでのforeachを使用するPHP開発者をしていますjavascriptのために。下記のコメントに基づいてこれを更新する

app.get('/summoner/:summonerName', function(req, res) { 
lolapi.Summoner.getByName(req.params.summonerName, function(err, obj) { 
    var options = { 
    beginIndex: 0, 
    endIndex: 2 
    }; 
    lolapi.MatchList.getBySummonerId(obj['savisaar2'].id, options, function(err, matches) { 
    for(var i = 0; i < obj.matches.length; i++) { console.log(obj.matches[i].matchId); } 
    }); 
}); 
}); 
+1

で多くの利益があるように思えません。ルートオブジェクトをループします。しかし、あなたはそれと '' .forEach() '](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)から' matches'配列にアクセスできます。それ以上。 –

+0

あなたのスニペットに不一致があります。 'MatchList.getBySummonerId()'のコレクションは単に 'matches'と呼ばれます。しかし、あなたは 'obj.matches'をループしています(' Summoner'を参照して 'obj'で)。 –

答えて

0

:ありがとう

は、私は、各matchId

現在のコードを反復処理する必要があります。

外側のオブジェクトはmatchesと呼ばれます。あなたがしようとしているのは、そのオブジェクト内の配列(matchesとも呼ばれます)を繰り返し処理し、配列内の各オブジェクトに対して、matchIdを印刷します。

var matches = matches.matches; 
// If you get an error here, it means the `matches` object either doesn't exist, or, it doesn't contain an array called `matches` 

for(var i = 0; i < matches.length; i++) { 
    console.log(matches[i].matchId); 
} 
+0

私はこれを使用しようとすると未定義のままです。 – Elevant

+0

@Elevantを拡張できますか?何が '未定義 'になっていますか? –

+0

私はmatchIdの値のオブジェクト内の各配列を反復しようとしています。その本当に混乱しているhaha – Elevant

-1
LoopCount = 0; 
while (1==1){ 
LoopCount = LoopCount + 1; 
if (LoopCount == //numberOfTimesToLoop){ 
break}; 
//YourCode 
}; 
+1

ループ全体が混じっているかもしれませんが、 'for(var LoopCount = 0; LoopCount

-1

お使いのブラウザはES6(それらのほとんどがある)をサポートしている場合は、このようなスクリプトを使用することができます:あなたがしていることを行うことができます

for (var m of obj.matches){ 
    console.log(m.matchId); 
} 
関連する問題