【发布时间】:2020-03-29 20:44:25
【问题描述】:
我有一组对象:
const items = [{ search_type: 'environment',
search_code: 'TBA_ENVIRONMENT00002',
asset_code: 'ASSET00002' },
{ search_type: 'job',
search_code: 'TBA_JOB00002',
asset_code: 'ASSET00002' },
{ search_type: 'environment',
search_code: 'TBA_ENVIRONMENT00002',
asset_code: 'ASSET00004' },
{ search_type: 'job',
search_code: 'TBA_JOB00002',
asset_code: 'ASSET00004' },
{ search_type: 'job',
search_code: 'TBA_JOB00003',
asset_code: 'ASSET00004' },
{ search_type: 'scene',
search_code: 'TBA_SCENE00006',
asset_code: 'ASSET00002' },
];
并希望返回类似于以下内容的内容:
{
ASSET00002: {
environment:["TBA_ENVIRONMENT00002"],
job:["TBA_JOB00002"],
scene:["TBA_SCENE00006"]
},
ASSET00004: {
environment:["TBA_ENVIRONMENT00002"],
job:["TBA_JOB00002","TBA_JOB00003"]
},
}
这里我使用 Reduce 函数使用了这个逻辑:
const result = items.reduce((acc, item) => {
const { search_type, search_code, asset_code } = item;
return {
...acc,
[asset_code]: {
...acc[asset_code], [search_type]: [search_code]
},
};
}, {});
我得到以下结果:
{
ASSET00002: {
environment:["TBA_ENVIRONMENT00002"],
job:["TBA_JOB00002"],
scene:["TBA_SCENE00006"]
},
ASSET00004: {
environment:["TBA_ENVIRONMENT00002"],
job:["TBA_JOB00003"]
},
}
在返回 "ASSET00004"-> "job" 时,我应该得到具有两个值的数组,但只有一个。 我知道我的代码中缺少一些内容,但找不到将值正确推送到数组中的方法。 任何帮助将不胜感激。
【问题讨论】:
标签: javascript reduce