关于数组塌陷问题
1.问题如何产生?
解释
数组塌陷一般出现于你通过循环且根据下标删除元素所导致的,出现于splice这个方法
举例
let arr = [0,1,2,3,4]
for(let i = 0;i<arr.length;i++) {
arr.splice(i,1)
}
// 当循环到0时,删除的是第0项,即元素0被删除,由于splice改变原数组,即:arr = [1,2,3,4]
// 当循环到1时,删除的是第1项,即元素为2被删除,即:arr = [1,3,4]
// 当循环到2时,删除的是第2项,即元素4被删除,即:arr[1,3]
// 当循环到3时,即报错,由此产生数组塌陷
2.如何解决?
let arr = [0,1,2,3,4]
for(let i = 0;i<arr.length;i++) {
arr.splice(i,1)
i-- // 减去即可
}