如何用数字数组过滤对象数组

问题描述 投票:0回答:6

给定对象数组arr1,如何将不具有等于数字数组arr2中任何值的属性的对象过滤到新数组中>

const arr1 = [
  {
    key: 1,
    name: 'Al'
  },
  {
    key: 2,
    name: 'Lo'
  },
  {
    key: 3,
    name: 'Ye'
  }
];

const arr2 = [2, 3]

// Failed attempt
const newArr = arr1.filter(obj1 => arr2.some(num1 => num1 !== obj1.key))
console.log(newArr)

// Expected: [{ key: 1, name: 'Al' }]

// Received: [
//   { key: 1, name: 'Al' },
//   { key: 2, name: 'Lo' },
//   { key: 3, name: 'Ye' }
// ]

给定对象数组arr1,如何将不具有等于数组arr2的任何值的属性的对象过滤到新数组arr2 const arr1 = [{键:1,名称:'Al'。 ..

javascript arrays filter
6个回答
3
投票

使用语法:


1
投票

您可以这样做


1
投票

这将为您工作:


0
投票

对于这种情况,Set也非常酷(对于大型数组,性能更高:]


0
投票

您可以这样使用indexOf


0
投票

[当arr2中不存在arr1元素时,您需要过滤arr1,所以我认为使用indexOf()这样会更好]]

const newArr = arr1.filter(obj1 => arr2.indexOf(obj1.key) === -1)
© www.soinside.com 2019 - 2024. All rights reserved.