javascript - 我如何从对象中存储对象,该对象本身存储在对象数组中的对象(例如下面)中?
问题描述
我是 JavaScript 新手。
我想从嵌套对象创建一个新数组。
我试图说明我的问题的结构。我想将数组中每个对象的子对象中的对象放入一个新数组中。假如:
[
{id: 10939, reference_id: 1, name: "A", value: "A", children: {
1002: {id: 22, reference_id: 22, name: "A!", value: "A1"},
1013: {id: 23, reference_id: 23, name: "A2", value: "A2"}
}},
{id: 10940, reference_id: 2, name: "B", value: "B", children: {
1014: {id: 33, reference_id: 33, name: "B1", value: "B1"}
}},
{id: 10941, reference_id: 3, name: "C", value: "C", children: {
IN01: {id: 44, reference_id: 44, name: "C1", value: "C1"},
IN02: {id: 41, reference_id: 42, name: "C2", value: "C2"},
IN03: {id: 55, reference_id: 22, name: "A!", value: "A1"},
IN04: {id: 55, reference_id: 55, name: "G2", value: "G2"}
}}
];
预期的:
[{id: 22, reference_id: 22, name: "A!", value: "A1"},
{id: 23, reference_id: 23, name: "A2", value: "A2"},
{id: 33, reference_id: 33, name: "B1", value: "B1"},
{id: 44, reference_id: 44, name: "C1", value: "C1"},
{id: 41, reference_id: 42, name: "C2", value: "C2"},
{id: 55, reference_id: 22, name: "A!", value: "A1"},
{id: 55, reference_id: 55, name: "G2", value: "G2"}
]
怎么办?
解决方案
.flatMap()
将遍历您的数组,并使用函数的返回值形成一个新数组,将最终数组展平
用于destructuring
仅选择children
条目,然后Object.values
仅返回这些条目的值
const data = [
{id: 10939, reference_id: 1, name: "A", value: "A", children: {
1002: {id: 22, reference_id: 22, name: "A!", value: "A1"},
1013: {id: 23, reference_id: 23, name: "A2", value: "A2"}
}},
{id: 10940, reference_id: 2, name: "B", value: "B", children: {
1014: {id: 33, reference_id: 33, name: "B1", value: "B1"}
}},
{id: 10941, reference_id: 3, name: "C", value: "C", children: {
IN01: {id: 44, reference_id: 44, name: "C1", value: "C1"},
IN02: {id: 41, reference_id: 42, name: "C2", value: "C2"},
IN03: {id: 55, reference_id: 22, name: "A!", value: "A1"},
IN04: {id: 55, reference_id: 55, name: "G2", value: "G2"}
}}
];
const resultFlat = data.flatMap(({children}) => Object.values(children));
console.log(resultFlat);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- c - SCTP 有序消息传递
- javascript - 如何在 ReactNative 中从不同文件(无类/组件)调用组件函数
- python - 如何计算具有不同长度元素的字符串的可能集数量?
- mediawiki - 如何从头开始重新创建 mediawiki 数据库?
- javascript - 我如何将对象传递给对象的属性?
- javascript - 如何在 JavaScript 中将特定属性访问到 JSON 或对象中
- javascript - 获取两个字符串之间的组
- assembly - x86 美国电话电报公司 | `add` 指令有什么作用?(使用内存寻址)
- google-apps-script - 当单元格在 Google 表格中达到某个值时,如何让宏自动触发?
- c# - 不断更新 ListView 模板中的标签