javascript - JAVASCRIPT - 在数组展平后从子对象内部的父对象数组中获取值
问题描述
我有一个对象数组,它有一些值。例子:
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 中的以下组合函数,以获取所有 Arraysarray
属性值并将它们展平为单个数组:
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
每个对象内部的 , 属性值,以便映射它们。但我找不到一种方法来实际获取对象内部的正确值..
我想要实现的是这个对象数组。Keep in mind that I can have dozens of Objects in Big Array, and hundrends of Objects inside each child array
:
// 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。梅恩有一种方法可以用每个长度来做到这一点,array
但不知道该怎么做。
帮助将不胜感激..!! 谢谢!!
解决方案
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]}))
推荐阅读
- django - 如何对 django 模型执行下一个查询
- iphone - 在 Mobile Safari 13 和 14 中上传 Web 文件
- android - 自动在应用程序和库之间切换“个性”
- swift - 如何设置 SwiftUI 工具栏显示在视图的中心
- django-templates - 是否有负载静态链接我的静态文件?
- web - 当用户访问我的网站时,有没有办法判断浏览器开发工具是否打开?
- powerbi-desktop - 滚动 12 个月 Power bi
- javascript - HTML contenteditable:当内部 HTML 更改时保持插入符号位置
- reactjs - 为什么在启动故事书时出现错误
- javascript - JavaScript Promise 处理程序是由其函数的顺序决定的吗?