【问题标题】:How to filter and get array by id?如何按id过滤和获取数组?
【发布时间】:2021-01-29 02:27:05
【问题描述】:
const id = [1, 4, 10]
const data =[{id: 1, name: Banana}, {id: 2, name: Mango}, {id: 3, name: Chili}, {id: 4, name: WaterMelon},  {id: 10, name: WaterMelon}]

我试过过滤器它向我显示空值。我想删除数组中的 id 匹配。

【问题讨论】:

  • 显示你的尝试

标签: javascript arrays filter


【解决方案1】:

filter()includes() 一起使用:

const result = data.filter(({id}) => !ids.includes(id));

完整的 sn-p:

const ids = [1, 4, 10];
const data = [{
  id: 1,
  name: 'Banana'
}, {
  id: 2,
  name: 'Mango'
}, {
  id: 3,
  name: 'Chili'
}, {
  id: 4,
  name: 'WaterMelon'
}, {
  id: 10,
  name: 'WaterMelon'
}];

const result = data.filter(({id}) => !ids.includes(id));

console.log(result);

【讨论】:

  • 对不起。我想删除匹配的 id。
  • 更新答案。
【解决方案2】:

如果你想filter找出匹配的ID,试试这个代码:

const result = data.filter(({id}) => ids.indexOf(id) < 0);

const ids = [1, 4, 10]
const data =[{id: 1, name: 'Banana'}, {id: 2, name: 'Mango'}, {id: 3, name: 'Chili'}, {id: 4, name: 'WaterMelon'},  {id: 10, name: 'WaterMelon'}];

const result = data.filter(({id}) => ids.indexOf(id) < 0);
console.log(result);

【讨论】:

    【解决方案3】:

    使用filter会选择数据的id, 并且您的对象名称类型数据应该是字符串,或者您可能希望将其作为变量,这样您就不会出错。

    data.filter((object) => !id.includes(object.id))
    

    【讨论】:

      【解决方案4】:
      const result=data.filter((value)=>!id.includes(value.id))
      

      【讨论】:

      • 如果您详细说明您的答案并给出解释,将对其他用户有所帮助
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 2020-11-05
      • 2013-03-21
      • 1970-01-01
      相关资源
      最近更新 更多