【发布时间】:2020-04-24 10:31:52
【问题描述】:
reduce() 函数有问题。
假设我有这个数组:
myOrders =
[ { order_date: '2019/12/01', order_type: 'Shoes', order_amount: 50 }
, { order_date: '2019/12/01', order_type: 'Shoes', order_amount: 30 }
, { order_date: '2019/12/01', order_type: 'Shirts', order_amount: 30 }
, { order_date: '2019/12/02', order_type: 'Shoes', order_amount: 10 }
]
我需要想出类似下面的东西:
filteredOrders = [
{
order_date: '2019/12/01',
ordered_items: {
{type: 'Shoes', amount: 80},
{type: 'Shirts', amount: 30}
}
}
]
请注意,此过滤后的数组正在查询 date 并将 amount 与 type 相加。
我有以下代码,但考虑到type,我无法使其工作
let seriesData = Object.entries(
buyOperations.reduce(
(dvs, { order_date: d, order_amount: v }) =>
({ ...dvs, [d]: (dvs[d] || 0) + v }), {}
)
).map(([order_date, order_amount]) => ({
order_date,
order_amount
}));
【问题讨论】:
-
filteredOrders[0].ordered_items不能是一个对象,但应该是一个数组? -
而
buyOperations来自哪里??? -
这只是示例代码。
-
stackoverflow.com/help/how-to-ask +最好有一致性。
标签: javascript arrays ecmascript-6 mapreduce reduce