【发布时间】:2018-02-04 12:36:37
【问题描述】:
我正在使用下面的 sn-p 从数组中删除所有出现的值(即本例中的 97)。我无法理解为什么输出数组的值是 97。当我删除 32 时,它会从数组中删除所有 32。与 6 相同。这里的 97 有什么问题?对我来说有点奇怪。 (我在想可能是 97 没有正确输入或什么的)。
var inputArr = [3, 97, 32, 6, 97, 2, 9,32, 1, 32, 97, 97, 6, -1, 5];
function removeItem(array, item) {
for(i = 0; i<array.length; i++){
if(array[i] == item) {
array.splice(array.indexOf(item), 1);
}
}
}
removeItem(inputArr, 97); removeItem(inputArr, 32); removeItem(inputArr, 6);
document.getElementById("output").innerHTML = inputArr;
<p id="output"></p>
【问题讨论】:
-
您在迭代数组时正在对其进行变异。通常这是个坏主意。因为每次删除某些东西时,数组长度都会发生变化。
-
尤里·塔拉班科。谢谢(你的)信息。我会记住的。
标签: javascript arrays