- 此问题在此处已有答案**:
(32个答案)
2天前关闭。
我有以下最简单的数据结构:
items: [
{ id: 1, account: 'acct_101' },
{ id: 2, account: 'acct_52' },
{ id: 3, account: 'acct_33' },
{ id: 4, account: 'acct_101' },
{ id: 5, account: 'acct_101' },
]
我想根据帐户数据将项目分组。数据是动态的;我事先不知道帐号是什么。
我可以遍历数据:
items.map((item) => (
console.log("item account: ", item.account)
))
但不确定如何匹配item.account
是否已经存在,如果存在,则添加到现有数据对象,如果不存在,则创建新对象组。
所需的输出可能如下所示:
item_groups: [
{
acct_101: [
{ id: 1, account: 'acct_101' },
{ id: 4, account: 'acct_101' },
{ id: 5, account: 'acct_101' },
],
acct_52: [
{ id: 2, account: 'acct_52' },
],
acct_33: [
{ id: 2, account: 'acct_33' },
],
}
]
3条答案
按热度按时间z8dt9xmd1#
尝试如下:
更简短的形式:
使用Array.prototype.reduce()
1l5u6lss2#
对于你想要的输出,我认为你需要使用减少高阶函数。
因此,您的代码将是:
输出:
nbnkbykc3#