如何从列表中获取供应商名称和项目计数?



在我的 vue 应用程序中,有一个未结采购订单的列表。每个订单都有一个供应商名称。

我喜欢生成一个列表,其中包含所有供应商名称和他们拥有的未结采购订单数量。

使用 lodash,我可以生成供应商列表:

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}

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>

最新更新