我正在尝试按numbers
过滤array
。基本上,应删除id为48
的汽车,因为它在numbers
上不存在
我错过了什么?
const numbers = [49, 482, 49, 49, 49, 1135, 49, 1709, 1044, 1016, 30];
const array = [{
cars: [{
id: 48
}, {
id: 49
}]
}];
array.forEach(elem => elem.cars.filter(car => !numbers.includes(car.id)));
console.log(array);
我想保留相同的结构,我只想删除id为48
的汽车
3条答案
按热度按时间bq8i3lrv1#
可以使用嵌套的
forEach
或
forEach
内的reduce
mitkmikd2#
您可以使用
Array.reduce()
来取得预期的结果。其思想是改变过滤条件,允许保留在
numbers
数组中找到的汽车对象id,并消除rest。在您的方法中,
Array.forEach
只是迭代,不返回任何内容,并且Array.filter
不会改变实际数组。wj8zmpe13#
请参考代码,在数组上迭代时,我们可以改变汽车数组。