猿问

es6,从一个数组中删除另一个数组包含的内容

我的代码有bug,然后查了下是把==写成了=



A [1,2,3,4,5,6,7]

B [2,3,4]

删除后


A [1,5,6,7]




    this.selectRightTableData.forEach(item => {

      this.rightTableData.splice(this.rightTableData.findIndex(v => v.id = item.id), 1)

    })


  

修复后,根据对象某个属性判断;是否相同


  

      


    this.selectRightTableData.forEach(item => {

      this.rightTableData.splice(this.rightTableData.findIndex(v => v.id == item.id), 1)

    })

  

根据内存地址判断


this.selectLeftTableData.forEach(item => {

      this.leftTableData.splice(this.leftTableData.indexOf(item), 1)

    })


开满天机
浏览 4309回答 2
2回答

白猪掌柜的

感觉还没有new array ,然后 indexOf往新数组push方便    const a = [1,2,3,4,5], b = [1,2],c = [];    a.forEach( v => {      if(b.indexOf(v) === -1) c.push(v)    })

摇曳的蔷薇

let A=[1,2,3,4,5,6,7];let B=[2,3,4];let newB=[];for(var i=0,lenA=A.length;i<lenA;i++){&nbsp; &nbsp; for(var b=0,lenB=B.length;b<lenB;b++){&nbsp; &nbsp; &nbsp; &nbsp; if(A[i]!=B[b]){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newB.push(B[b])&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}这样也可以达到你想要的效果
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答