簡體   English   中英

從數組中刪除具有公共屬性的 object

[英]Remove object, with a common property, from array

如果在該數組中的另一個 object 中找到 object 中的單個屬性,是否有辦法從數組中刪除 object?

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和 object 來存儲每輛車的值。

 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 function 通過指定鍵來刪除數組中的重復項:

_.uniqBy(arr, (e) => {
  return e.car;
});

如果你有興趣,這里是文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM