gpt4 book ai didi

javascript - JS中如何将Object设置在Array之前?

转载 作者:行者123 更新时间:2023-12-02 21:38:30 24 4
gpt4 key购买 nike

在我当前的 Angular 项目中,我必须更改 JSON 数组,以便它可以显示在树中。为了使树能够输出对象,必须将嵌套数组包装在对象中。

预期的形式/输出:

this.nodes = [
{
id: 1,
name: 'root1',
children: [
{ id: 2, name: 'child1' },
{ id: 3, name: 'child2' }
]
}, ....

我当前的表单:

[{
id: 1,
name: 'root1',
name2: [{
id: 2,
name: 'child1'
},
{
id: 3,
name: 'child2',
name3: [{
id: 3,
name: 'child2'
}],
},
]
}], ...

如何将我的“name2”或“name3”更改为 child ?

最佳答案

我有这个厚衬里:

const rename = (array) => array.map(item => Object.fromEntries(Object.entries(item).map(([k, v]) => k.match(/name\d+/) ? ['children', rename(v)] : [k, v])));

const nodes = [{
id: 1,
name: 'root1',
name2: [
{
id: 2,
name: 'child1'
},
{
id: 3,
name: 'child2',
name3: [
{
id: 3,
name: 'child2'
}
],
},
]
}];

const rename = (array) => array.map(item => Object.fromEntries(Object.entries(item).map(([k, v]) => k.match(/name\d+/) ? ['children', rename(v)] : [k, v])));

console.log(JSON.stringify(rename(nodes), null, 4));

// [
// {
// "id": 1,
// "name": "root1",
// "children": [
// {
// "id": 2,
// "name": "child1"
// },
// {
// "id": 3,
// "name": "child2",
// "children": [
// {
// "id": 3,
// "name": "child2"
// }
// ]
// }
// ]
// }
// ]

关于javascript - JS中如何将Object设置在Array之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60433626/

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