我有一個嵌套在另一個使用字符串作爲鍵的數組內的索引數組。我需要從兩個數組中提取信息,並使用以下循環。如何將循環嵌套在關聯數組(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調用而沒有任何問題。但是,當它完成第一個數組的第一個元素時,它不會繼續到第二個元素並獲取它的內部數組數據。
我希望這個解釋不會太糟糕。
你可以在這裏看到完整的代碼更加清晰:http://jsfiddle.net/FvP5f/
工作非常感謝!還有一個問題。結果按隨機順序寫入每個頁面刷新:即,未觀察到陣列中URL的順序。這可能是由這個代碼造成的,還是來自解析結果的代碼的可能性更大(http://jsfiddle.net/cNY5x/)。感謝一個掙扎的菜鳥...... – Fernando
ajax結果是異步收到的,可能不會以任何特定的順序返回。如果您按照某種順序需要它們,那麼您可能必須將結果累積到一系列結果中,然後在收到全部結果後對其進行分類,然後按照所需順序對其進行處理。 – jfriend00
真棒再次感謝!也意識到我可以在我正在使用的jquery ajax方法中將異步選項設置爲false ... – Fernando