Как работает фильтрация в массиве? - PullRequest
0 голосов
/ 03 августа 2020

Я хотел бы знать, как фильтровать данные из следующего массива

0: {Id: 30008, Item: " Rice"}
1: {Id: 30009, Item: " Beans"}
2: {Id: 30011, Item: " Beans"}
3: {Id: 30016, Item: " Rice"}"

Я хотел бы получить количество всех элементов, которые повторяются в приведенном выше. Моя идея - получить счет и добавить это число в какой-нибудь div на странице. Страница содержит следующий div

<div className="quantity">
    <input type="number" defaultValue="{1}" min="{1}" className="quantity-field" id="default-quantity" />
</div>

1 Ответ

0 голосов
/ 03 августа 2020

Используйте reduce для сбора и подсчета ваших предметов, например:

const data = [{Id: 30008, Item: " Rice"},
{Id: 30009, Item: " Beans"},
{Id: 30011, Item: " Beans"},
{Id: 30016, Item: " Rice"}]

const groupedDataObj = data.reduce((acc,rec)=>{
    acc[rec.Item] = typeof acc[rec.Item] === 'undefined'? 1: acc[rec.Item]+1
    return {...acc}
},{})

const groupedDataArray = Object.keys(groupedDataObj).map((key)=>({[key]: groupedDataObj[key]}))

См. Полный пример на игровой площадке: https://jscomplete.com/playground/s545971

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...