【发布时间】:2021-06-02 10:41:25
【问题描述】:
我使用 Redux 将我的所有产品存储在一个列表中。显示的 thist 列表如下所示:
[
{
"id": 1,
"name": "BLACK TEA",
"supplieruuid": "SLIGRO",
},
{
"id": 2,
"name": "GREEN TEA",
"supplieruuid": "SLIGRO",
},
{
"id": 3,
"name": "PURPLE TEA",
"supplieruuid": "BUNZL",
},
{
"id": 4,
"name": "RAINBOW TEA",
"supplieruuid": "BUNZL",
},
]
我正在使用这个 reduce 函数通过 supplieruuid 键将这些产品组合在一起。
export const selectSortedItems = (state) => state.entities.cart.list.reduce((hash, { ["supplieruuid"]: value, ...rest }) => ({ ...hash, [value]: (hash[value] || []).concat({ ...rest }) }), {});
这将返回这个由关键供应商uuid 分组的产品数组。
[
{
"SLIGRO": [
{
"id": 1,
"name": "BLACK TEA",
"supplieruuid": "SLIGRO",
},
{
"id": 2,
"name": "GREEN TEA",
"supplieruuid": "SLIGRO",
},
],
"BUNZL": [
{
"id": 3,
"name": "PURPLE TEA",
"supplieruuid": "BUNZL",
},
{
"id": 4,
"name": "RAINBOW TEA",
"supplieruuid": "BUNZL",
},
],
},
]
除了我需要返回如下:
[
{
title: "SLIGRO",
data: [
{
"id": 1,
"name": "BLACK TEA",
},
{
"id": 2,
"name": "GREEN TEA",
},
],
},
{
title: "BUNZL",
data: [
{
"id": 3,
"name": "PURPLE TEA",
},
{
"id": 4,
"name": "RAINBOW TEA",
},
],
},
]
如何修改 reduce 函数以显示上述数组?添加了标题和数据。
【问题讨论】:
-
一个对象如何在您的预期结果中包含 2 个具有相同名称的属性
title和data。你无法做到这一点。 -
很抱歉,我刚刚更新了我的意思。我忘记关闭对象了。
-
this 是你的答案吗?
标签: javascript reactjs redux reduce react-redux-form