在JavaScript中动态重组数据到Treedata
我有一系列演员,每个演员都有电影
,奖励
等数组。我想将从服务器收到的数据的结构更改为树数据。我的数组名称应在新数组儿童
中具有3个属性:一个自生生成id
,name
哪个是我的数组的名称示例“电影”和儿童
包含我数组的实际数据。我需要一个人开始动态创建此功能,因为我的数据可以增长。任何帮助都非常感谢。
服务器的数据结构:
[{
name: 'Tom Holland',
id: 1,
movies: [{
typename: 'MoviesData',
id: 12,
name: 'Spider-Man NWH',
stars: 4
}, {
typename: 'MoviesData',
id: 13,
name: 'Spider-Man Far from Home',
stars: 4
}],
awards: [{
typename: 'AwardsData',
id: 6,
name: 'BAFTA Award',
year: 2017
}, {
typename: 'AwardsData',
id: 7,
name: 'Empire Award',
year: 2013
}], //... more Arrays like Hobbies, TV-Shows, etc...
}, //... more Actors
]
必需的树数据:
[{
name: "Tom Holland",
id: 1,
children: [{
id: 3, // self generated id for each array
name: "Movies", // Object key name
children: [
{typename: 'MoviesData', id: 12, name: 'Spider-Man NWH', stars: 4},
{typename: 'MoviesData', id: 13, name: 'Spider-Man Far from Home', stars: 4},...
]
}, {
id: 15, // self generated id
name: "Awards",
children: [
{typename:'AwardsData', id: 6, name: 'BAFTA Award', year: 2017},
{typename:'AwardsData', id: 7, name: 'Empire Award', value: 2013},...
]
}, //...]
}, //...]
I have an array of actors and each of them have arrays like movies
, awards
and so on. I want to change the structure of my data that I receive from the server into a tree data. My array name should be in a new array children
that has 3 properties: a self generated id
, name
which is the name of my array for example 'movies', and children
which contains the actual data for my array. I need a head start to create this dynamically because my data can grow. Any help is much appreciated.
data structure from the server:
[{
name: 'Tom Holland',
id: 1,
movies: [{
typename: 'MoviesData',
id: 12,
name: 'Spider-Man NWH',
stars: 4
}, {
typename: 'MoviesData',
id: 13,
name: 'Spider-Man Far from Home',
stars: 4
}],
awards: [{
typename: 'AwardsData',
id: 6,
name: 'BAFTA Award',
year: 2017
}, {
typename: 'AwardsData',
id: 7,
name: 'Empire Award',
year: 2013
}], //... more Arrays like Hobbies, TV-Shows, etc...
}, //... more Actors
]
required tree data:
[{
name: "Tom Holland",
id: 1,
children: [{
id: 3, // self generated id for each array
name: "Movies", // Object key name
children: [
{typename: 'MoviesData', id: 12, name: 'Spider-Man NWH', stars: 4},
{typename: 'MoviesData', id: 13, name: 'Spider-Man Far from Home', stars: 4},...
]
}, {
id: 15, // self generated id
name: "Awards",
children: [
{typename:'AwardsData', id: 6, name: 'BAFTA Award', year: 2017},
{typename:'AwardsData', id: 7, name: 'Empire Award', value: 2013},...
]
}, //...]
}, //...]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
下面介绍的是实现预期目标的一种可能方法。
代码片段
说明
内联注释上面添加了上述片段。
Presented below is one possible way to achieve the desired objective.
Code Snippet
Explanation
Inline comments added to the snippet above.