gpt4 book ai didi

javascript - 将数组值分配给顶级对象 javascript

转载 作者:行者123 更新时间:2023-12-01 01:31:13 25 4
gpt4 key购买 nike

底部是我正在尝试解析的 JSON 文件的精简版本。我想创建具有团队名称和玩家名称键的单独对象。

我将如何使用团队名称并映射到每个单独的玩家并收到类似这样的内容(使用 JavaScript):

[
{ name: 'Dallas Stars', playerName: 'Alexander Radulov'},
{ name: 'Dallas Stars', playerName: 'Ben Bishop'},
{ name: 'Dallas Stars', playerName: 'Jamie Benn'}
...
{ name: 'Columbus Blue Jackets', playerName: 'Pierre-Luc Dubois'}
]

来自此 JSON:

[ { name: 'Dallas Stars',
roster:
[ 'Alexander Radulov',
'Ben Bishop',
'Jamie Benn',
'Tyler Pitlick',
'Miro Heiskanen' ] },
{ name: 'Los Angeles Kings',
roster:
[ 'Jonathan Quick',
'Jonny Brodzinski',
'Oscar Fantenberg' ] },
{ name: 'San Jose Sharks',
roster:
[ 'Joe Thornton',
'Brent Burns',
'Joe Pavelski',
'Antti Suomela' ] },
{ name: 'Columbus Blue Jackets',
roster:
[ 'Sonny Milano',
'Brandon Dubinsky',
'Nick Foligno',
'Pierre-Luc Dubois' ] } ]

本质上,我正在尝试将顶级 key 对映射到各个玩家。我也尝试过搜索所有 lodash 函数,但没有偶然发现执行此操作的正确方法。

有没有办法使用平面 map 并多次使用团队名称?

最佳答案

您需要迭代外部数组项,然后在每个数组项内部,也迭代名册reduce 通常是在非一对一的基础上将一个数组转换为另一个数组的最合适的方法:

const input=[{name:'Dallas Stars',roster:['Alexander Radulov','Ben Bishop','Jamie Benn','Tyler Pitlick','Miro Heiskanen']},{name:'Los Angeles Kings',roster:['Jonathan Quick','Jonny Brodzinski','Oscar Fantenberg']},{name:'San Jose Sharks',roster:['Joe Thornton','Brent Burns','Joe Pavelski','Antti Suomela']},{name:'Columbus Blue Jackets',roster:['Sonny Milano','Brandon Dubinsky','Nick Foligno','Pierre-Luc Dubois']}];

const output = input.reduce((a, { name, roster }) => {
roster.forEach((playerName) => {
a.push({ name, playerName });
});
return a;
}, []);
console.log(output);

关于javascript - 将数组值分配给顶级对象 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255150/

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