gpt4 book ai didi

JAVASCRIPT - 在数组展平后从子对象内的父对象数组获取值

转载 作者:行者123 更新时间:2023-11-28 16:50:16 24 4
gpt4 key购买 nike

我有一个对象数组,其中有一些值。示例:

bigArray: [
{
greatName: 'Name String - #1',
array: [{
id: 1,
name: 'string name - #1'
}]
},
{
greatName: 'Name String - #2',
array: [{
id: 2,
name: 'string name - #2'
}]
},
{
greatName: 'Name String - #3',
array: [{
id: 3,
name: 'string name - #3'
}]
}
]

我使用了 ramda 中的以下组合函数,以便获取所有数组 array 属性值并将它们展平为单个数组:

  const extractRB = compose(
flatten,
map(props(['array']))
);

这给了我以下数组:

// Flatten Array:
flatten: [
{
id: 1,
name: 'string name - #1'
},
{
id: 2,
name: 'string name - #2'
},
{
id: 3,
name: 'string name - #3'
}
]

现在,这是我的功能的要求。 问题是我还需要每个对象内的greatName属性值,以便映射它们。但我找不到一种方法来实际获取对象内的正确值..

我想要实现的是这个对象数组。 请记住,我可以在大数组中包含数十个对象,并在每个子数组中包含数百个对象:

// Flatten Array:
flatten: [
{
id: 1,
name: 'string name - #1'
greatName: 'Name String - #1',
},
{
id: 2,
name: 'string name - #2',
greatName: 'Name String - #2',
},
{
id: 3,
name: 'string name - #3',
greatName: 'Name String - #3',
}
]

我这样做了,它从展平数组中传播原始对象并向其添加 greatName 属性,但如何计算哪个是每个对象的正确值。对象和数组之间没有共同的值作为条件:

flatten.map(flatObj =>  {...flatObj, greatName: bigArray.map(// what operation can I do here, to get the correct value for each object inside the `bigArray` )});

我尝试了很多条件操作,但它们总是返回 false。也许有一种方法可以用每个数组的长度来做到这一点,但不知道如何做到这一点。

帮助将不胜感激..!!谢谢!!

最佳答案

var bigArray= [
{
greatName: 'Name String - #1',
array: [{
id: 1,
name: 'string name - #1'
}]
},
{
greatName: 'Name String - #2',
array: [{
id: 2,
name: 'string name - #2'
}]
},
{
greatName: 'Name String - #3',
array: [{
id: 3,
name: 'string name - #3'
}]
}
]


console.log(bigArray.flatMap(({greatName, array}) => array.flatMap(x => ({greatName, ...x}))))

如果 array 属性始终只有 1 个元素,那么您可以将其写得更短:

  bigArray.map(({greatName, array}) => ({greatName, ...array[0]}))

关于JAVASCRIPT - 在数组展平后从子对象内的父对象数组获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60034771/

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