美文网首页
如何在forEach 中使用 splice

如何在forEach 中使用 splice

作者: webmrxu | 来源:发表于2018-09-19 10:01 被阅读0次

    splice 操作会直接改变数组,导致数组 length 改变, 使用forEach 循环数组并splice数组后,index下标指向错误,导致数组数据混乱。

    例如:我需要删除数组中第3 个和第 4 个元素,直接使用splice 删除指定位置元素,但结果确是删除了其他元素,删除了 3 和 5。


    1537321270(1).jpg

    思考1: 经历过splice 后,length 越来越小, 整个数组元素左移动,index下标对应的元素也相应的左移动,导致使用index定位元素不准确。如果采用 index倒序的方式进行splice操作,会不会能解决index定位元素不准确的问题。

    解决代码1:

    let a = [0,1,2,3,4,5,6,7,8,9];
    let tmpArr = []
    a.forEach((v,index) => {
      if (index == 3) {
        tmpArr.unshift(index)
      }
      if (index == 4) {
        tmpArr.unshift(index)
      }
    })
    tmpArr.forEach( v =>{
      a.splice(v, 1)
    })
    console.log(a)
    
    1537321723(1).jpg

    相关文章

      网友评论

          本文标题:如何在forEach 中使用 splice

          本文链接:https://www.haomeiwen.com/subject/yhubnftx.html