Как получить имя поставщика и количество товаров из списка? - PullRequest
0 голосов
/ 19 июня 2020

В моем приложении vue есть список открытых заказов на покупку. У каждого заказа есть имя поставщика.

Мне нравится создавать список со всеми именами поставщиков и количеством открытых заказов на покупку, которые у них есть.

С помощью loda sh я могу сгенерируйте список поставщиков:

computed: {
  menuItems: function () {
    let mappedItems =  this.partsToOrder.map(function (parts) {
      return { supplierName: parts.supplier_name, supplierId: parts.supplier_id }
    })
    return _.uniqWith(mappedItems)
  }
},

Как я могу добавить количество позиций для каждого поставщика? Это означает, что если у поставщика есть два открытых заказа, мне нравится иметь имя поставщика один раз с количеством элементов (2), например:

{supplierName: 'Tech Ltd.', numOrders: 2}

1 Ответ

0 голосов
/ 19 июня 2020

let data = [
  {supplierName: 'Tech Ltd.'},
  {supplierName: 'Tech Ltd.'},
  {supplierName: 'Tech Ltd.'},
  {supplierName: 'abc'},
  {supplierName: 'abc'},
  {supplierName: 'stackoverflow'},
  {supplierName: 'Dell'},
  {supplierName: 'Dell'},
];

let mappedData = _.chain(data)
  .groupBy('supplierName')
  .map((group, supplierName) => ({
    supplierName,
    numOrders: _.countBy(group, 'supplierName')[supplierName],
  }))
  .value();

console.log(mappedData);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
...