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)
    })
阅读 10.4k
2 个回答
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++){
    for(var b=0,lenB=B.length;b<lenB;b++){
        if(A[i]!=B[b]){
            newB.push(B[b])
        }
    }
}

这样也可以达到你想要的效果

感觉还没有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)
    })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题