【发布时间】:2022-08-03 15:42:17
【问题描述】:
我有这个代码:
let mix = [1, 2, 3, \"E\", 4, \"l\", \"z\", \"e\", \"r\", 5, \"o\"];
let newMix = mix.map(function (ele, index) {
if (typeof ele === \"number\") {
mix.splice(index, 1)
}
})
console.log(mix);
输出如下:
[2, \'l\', \'z\', \'e\', \'r\', \'o\']
我的问题是:为什么没有splice() 删除元素 2
-
因为您正在修改数组,同时仍然使用原始索引循环遍历它。当遇到数字
2时,映射循环将位于索引1,但该点的数组已经被修改,并且在该位置将对应元素3
标签: javascript