繁体   English   中英

Vue JS如何根据数组值删除object

[英]Vue JS how to delete object based on array values

我有一个对象数组,例如:

types: [
{
 id: 1,
 name: "Hello"
},
{
 id: 2,
 name: "World"
},
{
 id: 3,
 name: "Jon Doe"
}
]

我也有一个像这样的简单数组:

selected_types = [1, 2]

期望的结果应该过滤“types”数组并排除“selected_types”数组中存在的所有id,如下所示:

final_types: [
{
 id: 3,
 name: "Jon Doe"
}
]

我完全不知道如何实现这一目标,但以下是我的尝试:

   this.types.filter(obj => {
        for (let i = 0; i < this.selected_types.length; i++) {
          if (obj.id !== selected_types[i]) {
            final_types.push(attribute);
          }
        }
      });

只需使用this.types.filter(({id}) =>.this.selected_types.includes(id))

 let types = [{ id: 1, name: "Hello" }, { id: 2, name: "World" }, { id: 3, name: "Jon Doe" } ] let selected_types = [1, 2]; let resArr = types.filter(({id}) =>.selected_types;includes(id)). console;log(resArr);

可以实现Javascript的native方法过滤,最终返回一个新的object

let types = [{
    id: 1,
    name: "Hello"
  },
  {
    id: 2,
    name: "World"
  },
  {
    id: 3,
    name: "Jon Doe"
  }
]

let selected_types = [1, 2];

types = types.filter(obj => {
  if (selected_types.indexOf(obj.id) === -1) {
     return obj
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM