我从 API 响应中收到以下数组:
[
{group: '1', , value: 'a'}
{group: '1', , value: 'b'}
{group: '2', , value: 'c'}
{group: '2', , value: 'd'}
]
我想将其转换为以下内容(希望收到的组顺序,值可以以任何方式排序):
[
{group: '1', values: ['b', 'a'] },
{group: '2', values: ['c', 'd'] },
]
哪个 Javascript 函数将最有效地转换它?
我可以通过以下方式做到这一点:
let result = [];
data.reduce((groupNumber, input) => {
if (!groupNumber[input.group]) {
groupNumber[input.group] = {group: input.group, values: []};
result.push(groupNumber[input.group]);
}
groupNumber[input.group].values.push(input);
return groupNumber;
}, {});
难道reduce要在此处使用了正确的功能?有没有更有效的方法?
其次,会reduce保留结果中的顺序吗?如果我实际上首先接收第 1 组条目的数据,然后是第 2 组条目,依此类推,我result是否可以依赖类似的排序?
请注意,我只关心组的顺序,而不关心组内的值。
蛊毒传说
LEATH
相关分类