gpt4 book ai didi

javascript - 组合对象数组,组合具有相同值的键并保持唯一值

转载 作者:行者123 更新时间:2023-12-03 09:31:52 24 4
gpt4 key购买 nike

这是我的数据,包含 5 个数组。我希望实现的是组合 idname 并且新数组应该有 5 个不同的 playname 值。它可以是数组或新键,如 playername1

[
{
"id": 1,
"name": "Liquid",
"playername": "GH",
},
{
"id": 1,
"name": "Liquid",
"playername": "KuroKy",
},
{
"id": 1,
"name": "Liquid",
"playername": "Miracle",
},
{
"id": 1,
"name": "Liquid",
"playername": "w33",
},
{
"id": 1,
"name": "Liquid",
"playername": "Mind-Control",
}

]

我正在使用 lodash 来尝试实现这一点,但我无法使用我在网上搜索的代码示例获得我想要的数据格式。

这是我尝试过的当前代码,它提供了一个按 ID 分组的数组。

    _.forOwn(this.state.teamsData, function(value, key) {
console.log(value);
});

原始数据没有按ID分组。

我试图让我的数据看起来像这样 {"id": 1, "name": liquid, "playername": "GH", "playername2": "KuroKy"....}

最佳答案

您可以按 idname 属性分组,并存储同一组的索引。

var data = [{ id: 1, name: "Liquid", playername: "GH" }, { id: 1, name: "Liquid", playername: "KuroKy" }, { id: 1, name: "Liquid", playername: "Miracle" }, { id: 1, name: "Liquid", playername: "w33" }, { id: 1, name: "Liquid", playername: "Mind-Control" }],
result = Object
.values(data.reduce((r, { id, name, playername }) => {
var key = [id, name].join('|');
r[key] = r[key] || { data: { id, name }, index: 0 };
r[key].data['playername' + (r[key].index++ || '')] = playername;
return r;
}, {}))
.map(({ data }) => data);

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

关于javascript - 组合对象数组,组合具有相同值的键并保持唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58678979/

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