gpt4 book ai didi

javascript - 从数组和包含另一个数组的属性创建一个新数组

转载 作者:行者123 更新时间:2023-12-01 02:02:18 28 4
gpt4 key购买 nike

我需要从数组和包含另一个数组的属性创建一个新数组:

bigArray = [
{
bigArrayID : 1,
name: 'Xpto',
children: [
{childID:1,Name:'XptoChild1'},
{childID:2,Name:'XptoChild2'},
]
},
{
bigArrayID : 2,
name: 'Foo',
children: [
{childID:3,Name:'FooChild1'},
{childID:4,Name:'FooChild2'},
]
},
{
bigArrayID : 3,
name: 'Bar',
children: [
{childID:5,Name:'BarChild1'},
{childID:6,Name:'BarChild2'},
]
}
]

将 bigArray 转换为如下结果:

result = [
{
bigArrayID : 1,
name: 'Xpto',
children: [
{childID:1,Name:'XptoChild1'},
{childID:2,Name:'XptoChild2'},
]
},
{childID:1,Name:'XptoChild1'},
{childID:2,Name:'XptoChild2'},
{
bigArrayID : 2,
name: 'Foo',
children: [
{childID:3,Name:'FooChild1'},
{childID:4,Name:'FooChild2'},
]
},
{childID:3,Name:'FooChild1'},
{childID:4,Name:'FooChild2'},
{
bigArrayID : 3,
name: 'Bar',
children: [
{childID:5,Name:'BarChild1'},
{childID:6,Name:'BarChild2'},
]
},
{childID:5,Name:'BarChild1'},
{childID:6,Name:'BarChild2'}
]

每个子元素都必须是新数组中的元素。

我需要一个新数组,其中所有父亲和所有 child 作为对象。

我需要在新数组中将 child 作为你父亲的 sibling 。

我想我需要使用 concat 和/或扩展数组函数...

最佳答案

是的,你是对的,你可以使用Array#reduce()然后Array#concat()回调中的每个元素及其子元素到累加器:

const bigArray = [{"bigArrayID":1,"name":"Xpto","children":[{"childID":1,"Name":"XptoChild1"},{"childID":2,"Name":"XptoChild2"}]},{"bigArrayID":2,"name":"Foo","children":[{"childID":3,"Name":"FooChild1"},{"childID":4,"Name":"FooChild2"}]},{"bigArrayID":3,"name":"Bar","children":[{"childID":5,"Name":"BarChild1"},{"childID":6,"Name":"BarChild2"}]}]
const result = bigArray.reduce(
(result, element) => result.concat(element, element.children),
[]
)

// stringify is simply to prevent side-effects
// of stack snippet console behavior
console.log(JSON.stringify(result, null, 2))

关于javascript - 从数组和包含另一个数组的属性创建一个新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50451499/

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