javascript - JavaScript - 从数组中取出对象并将其内容放在相同的高度
问题描述
我需要以最简单和最短的方式解决以下问题。
如何从数组内的节点对象中取出键并将它们放置在与主数组相同的高度:
我有的:
[{ name: 'name 1', id: 1, node: [{ name: 'name2', id: 2 }]}]
我想要的是:
[{name: 'name 1', id: 1}, {name: 'name 2', id: 2}]
预先感谢您的帮助。
解决方案
你可以用reduce试试这个。您递归地遍历节点并连接一个仅包含名称和 ID 的数组。希望这可以帮助。
const data = [{ name: 'name 1', id: 1, node: [{ name: 'name2', id: 2 }]}];
const flatten = (array = []) =>
array.reduce((acc, { name, id, node }) =>
acc.concat(flatten(node)).concat({ name, id })
, []);
console.log(flatten(data));
推荐阅读
- oracle - ISO8859-15 (Latin-9) 是 UTF-8 的完整子选择吗?
- java - 在java中声明自定义可配置应用程序的配置?
- git - Azure DevOps:每次合并时附加工作项的数量不断增加
- python - 运行长时间的子进程并在执行结束前获取标准输出
- java - 数组是否应该比 ArrayLists 快这么多?
- webpack - 无法使用“html-loader”解析资产
- c# - c# 异步调用泛型委托
- laravel - Laravel 7 - return view()->with('some data) 是如何工作的?
- python - 关于连体CNN的准确性
- c# - 是否可以将参数传递给BackgroundService?