从数组中删除具有公共 属性 的对象
Remove object, with a common property, from array
如果在该数组中的另一个对象中发现该对象中的单个 属性,是否可以从该数组中删除该对象?
const arr = [{
car: 'bmw',
notimportant: 'bla bla',
},{
car: 'audi',
notimportant: 'bli bli',
},{
car: 'bmw',
notimportant: 'ble ble',
},{
car: 'golf',
notimportant: 'blo blo',
}]
我还想添加一个计数器,计算有多少重复项
预期结果:
[{
car: 'bmw',
count: 1,
notimportant: 'bla bla',
},{
car: 'audi',
count: 0,
notimportant: 'bli bli',
},{
car: 'golf',
count: 0,
notimportant: 'blo blo',
}]
您可以将 Array#reduce
与对象一起使用来存储每辆车的值。
const arr = [{
car: 'bmw',
notimportant: 'bla bla',
},{
car: 'audi',
notimportant: 'bli bli',
},{
car: 'bmw',
notimportant: 'ble ble',
},{
car: 'golf',
notimportant: 'blo blo',
}];
const res = Object.values(arr.reduce((acc,curr)=>{
++(acc[curr.car] = acc[curr.car] || {...curr, count: -1}).count;
return acc;
}, {}));
console.log(res);
您可以使用 lodash 的 uniqBy 函数通过指定键删除数组中的重复项:
_.uniqBy(arr, (e) => {
return e.car;
});
Here's the doc如果你有兴趣
如果在该数组中的另一个对象中发现该对象中的单个 属性,是否可以从该数组中删除该对象?
const arr = [{
car: 'bmw',
notimportant: 'bla bla',
},{
car: 'audi',
notimportant: 'bli bli',
},{
car: 'bmw',
notimportant: 'ble ble',
},{
car: 'golf',
notimportant: 'blo blo',
}]
我还想添加一个计数器,计算有多少重复项
预期结果:
[{
car: 'bmw',
count: 1,
notimportant: 'bla bla',
},{
car: 'audi',
count: 0,
notimportant: 'bli bli',
},{
car: 'golf',
count: 0,
notimportant: 'blo blo',
}]
您可以将 Array#reduce
与对象一起使用来存储每辆车的值。
const arr = [{
car: 'bmw',
notimportant: 'bla bla',
},{
car: 'audi',
notimportant: 'bli bli',
},{
car: 'bmw',
notimportant: 'ble ble',
},{
car: 'golf',
notimportant: 'blo blo',
}];
const res = Object.values(arr.reduce((acc,curr)=>{
++(acc[curr.car] = acc[curr.car] || {...curr, count: -1}).count;
return acc;
}, {}));
console.log(res);
您可以使用 lodash 的 uniqBy 函数通过指定键删除数组中的重复项:
_.uniqBy(arr, (e) => {
return e.car;
});
Here's the doc如果你有兴趣