我有一段代碼,我試圖從數組中拼接一個項目。在下面的代碼中,它應該刪除具有「Javascript」的項目,結果數組應該只包含「Java」。我在這裏做錯了什麼?javascript splice問題
var autoCompleteArray = new Array();
var item = new Array();
item.push("1");
item.push("Java");
autoCompleteArray.push(item);
var item2 = new Array();
item2.push("2");
item2.push("Javascript");
autoCompleteArray.push(item2);
var val = "Javascript";
for(var i=0;i<autoCompleteArray.length;i++){
if(autoCompleteArray[i][1] == val) {
autoCompleteArray.splice(autoCompleteArray[i],1);
}
}
console.log(autoCompleteArray); //Should show Java in the array since Javascript item has been removed.
你正在改變你正在迭代的數組..你正在尋找麻煩。 – DanC 2013-03-12 03:54:05
爲什麼不使用'filter'? (如果需要的話,可以使用Shiv)''autoCompleteArray = autoCompleteArray.filter(function(item){return item [i]!= val;});' – Ryan 2013-03-18 20:28:34