关于数组塌陷问题


关于数组塌陷问题

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--   // 减去即可
}

文章作者: 冷杨威
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 冷杨威 !
  目录
-->