给定对象数组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'。 ..
使用语法:
您可以这样做
这将为您工作:
对于这种情况,Set也非常酷(对于大型数组,性能更高:]
您可以这样使用indexOf
:
[当arr2中不存在arr1元素时,您需要过滤arr1,所以我认为使用indexOf()
这样会更好]]
const newArr = arr1.filter(obj1 => arr2.indexOf(obj1.key) === -1)