【发布时间】:2022-01-08 02:29:44
【问题描述】:
每当我想在 map 函数中使用 reduce 时,我都会收到错误消息“reduce 不是函数”。
我有一个数组,我通过 2 个键进行映射。日期和金额。下面是包含对象的数组。
const dividendArrayFiltered = [
{
"date": "2021-11-09",
"amount": 0.5
},
{
"date": "2021-11-08",
"amount": 0.5
},
{
"date": "2021-11-08",
"amount": 0.5
},
{
"date": "2021-11-11",
"amount": 1
},
{
"date": "2021-11-11",
"amount": 1
}
]
在这张地图中,我想减少相同日期的值。
这是给出错误的代码。不太清楚为什么 reduce 功能不起作用。希望你能帮帮我。谢谢!
const summedDividend = dividendArrayFiltered.map(({ date, amount }) => {
const grouped = date.reduce(
(a, d, i) => a.set(d, (a.get(d) ?? 0) + amount[i]),
new Map()
);
return {
date: [...grouped.keys()],
amount: [...grouped.values()],
};
});
【问题讨论】:
-
你根本不想
map,你只想直接reduce原始数组。 -
你不能映射一个对象,你可以在 Object.entries 中转换它
标签: javascript reduce