文字列をキーとして使用する別の配列の内部にネストされたURLのインデックス付き配列があります。両方の配列から情報を抽出する必要があり、次のループを使用しています。連想配列(JS)内でインデックス付き配列を循環するループをネストする方法
// Loop through the elements in the associative level to get a count of its items
var keyCnt = 0;
for(key in serviceCategories) {
keyCnt++;
}
// Then loop through it again, this time nesting another for loop to get at the inner/indexed arrays
for(key in serviceCategories) {
var currCat = key;
for (var i = 0; i < keyCnt; i++) {
$.ajax({
url: serviceCategories[currCat][i],
success: function(data) {
parsePageCont (data, currCat);
}
});
}
}
}
このコードは、最初の配列の最初の要素に対して正常に機能します。内部配列を循環し、問題のないすべてのURLに対してajax呼び出しを実行します。しかし、最初の配列の最初の要素で終了すると、2番目の配列に進まず、ITの内部配列データを取得します。
説明があまりにもうんざりしていないことを願っています。
あなたはより明確にするため、ここで完全なコードを見ることができます:あなたのデータ構造を仮定しhttp://jsfiddle.net/FvP5f/
これはうまくいきました。一つの問題が残っている。結果は各ページの更新時にランダムな順序で書き込まれます。つまり、配列内のURLの順序は確認されません。それはこのコードによって引き起こされる可能性がありますか、または結果を解析するコード(これはhttp://jsfiddle.net/cNY5x/で見つかる可能性が高いです)。苦しんでいるルーキーのおかげで... – Fernando
ajaxの結果は非同期的に受信され、特定の順序で戻ってこないかもしれません。何らかの順序でそれらがすべて必要な場合は、結果を一連の結果に蓄積し、すべて受信したときに並べ替えてから、必要な順序で処理する必要があります。 – jfriend00
もう一度大変感謝します!また、私が使用しているjquery ajaxメソッドでasyncオプションをfalseに設定できることを実現しました... – Fernando