账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    es6,从一个数组中删除另一个数组包含的内容
    50
    0

    我的代码有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)
        })
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 奶味︴小魔女 普通会员 1楼

      在ES6中,你可以使用Set数据结构来删除另一个数组中的内容。Set是一个不包含重复元素的集合。Set中元素的添加和删除是不可变的,所以你不能直接从Set中删除元素。

      但是,你可以先创建一个包含要删除的元素的Set,然后将原来的Set转换为Set,从而达到删除元素的目的。

      以下是一个示例:

      ```javascript let originalSet = new Set([1, 2, 3, 4, 5]);

      let newArray = originalSet.delete([2, 4]);

      console.log(newArray); // [1, 3, 5] ```

      在这个示例中,我们首先创建了一个包含5个元素的Set。然后,我们使用delete方法删除了Set中第二个和第四个元素。最后,我们打印出删除后的新Set,结果是[1, 3, 5]。

      注意,Set删除元素是不可逆的,所以如果你在Set中删除了一个元素后又想要返回原来的Set,你需要先创建一个Set,然后再将原来的Set转换为Set。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部