gpt4 book ai didi

javascript - 通过 id 规范化对象数组和键

转载 作者:行者123 更新时间:2023-11-30 09:39:22 25 4
gpt4 key购买 nike

我希望规范化一些从 API 返回的数据。已经在项目中使用下划线。

var res = [{
badge_no: 123,
id: 1,
name: 'bob'
}, {
badge_no: 456,
id: 2,
name: 'bill'
}, {
badge_no: 789,
id: 3,
name: 'ben'
},
// etc
];

我希望创建一个如下所示的数据结构:

var normalisedRes = [{
1: {
badge_no: 123,
id: 1,
name: 'bob'
}
}, {
2: {
badge_no: 456,
id: 2,
name: 'bill'
}
}, {
3: {
badge_no: 789,
id: 3,
name: 'ben'
}
}];

将 id 保留在 obj 中很重要。我相信我可以用 reduce 来完成这个,但我很挣扎。

感谢您的帮助!

编辑:这个问题现已得到解答。

根据此处的一些建议,我决定规范化数据以返回如下所示的 obj:

{ '1': {data}, '2':{data}, '3':{data} }

为此,我使用了 reduce,正如我最初认为的那样:

var normalized = res.reduce((acc, person) => {
acc[person.id] = person;
返回帐户;
}, {});

再次感谢所有的回答!

最佳答案

您可以将 Array#map 与对象一起使用,并使用 id 设置键并返回对象。

var array = [{ badge_no: 123, id: 1, name: 'bob' }, { badge_no: 456, id: 2, name: 'bill' }, { badge_no: 789, id: 3, name: 'ben' }],
result = array.map(function (a) {
var o = {};
o[a.id] = a;
return o;
});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

在 ES6 中,您可以使用计算属性。

var array = [{ badge_no: 123, id: 1, name: 'bob' }, { badge_no: 456, id: 2, name: 'bill' }, { badge_no: 789, id: 3, name: 'ben' }],
result = array.map(a => ({ [a.id]: a }));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 通过 id 规范化对象数组和键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com