我正在處理相當複雜的對象。它包含了2個陣列,其中包含每個對象的3個數組:如果內部數組滿足條件,則移除外部數組對象
我試圖刪除歷史記錄中的一個:數組[2]如果它的一個對象的用戶名是:零。
var resultsArray = result.history;
var arrayCounter = 0;
resultsArray.forEach(function(item) {
item.forEach(function(innerItem) {
if (innerItem.username == null) {
resultsArray.splice(arrayCounter,1);
};
});
arrayCounter++;
});
通過答案尋找它的建議做這樣的事情:
resultsArray.splice(arrayCounter,1);
這不是在這種情況下工作,因爲對象不止一個人可能的用戶名== NULL在這種情況下,它將刪除多個歷史對象,而不僅僅是我想要的那個。
如何刪除一個特定的歷史數組索引if username == null
?
是什麼阻止你剛剛經歷resultsArray迭代和它的子陣列用(;;)語法定時,然後在遇到和處理第一個匹配時打破循環? – matmo
在第一場比賽之後打破內部數組會阻止整個事情,而不會評估第二個(本例中)歷史:Array [2]。對? –
在這個問題中描述的所有可能的選項:http://stackoverflow.com/questions/6260756/how-to-stop-javascript-foreach – Dmitry