首页 > 解决方案 > JavaScript - 从数组中取出对象并将其内容放在相同的高度

问题描述

我需要以最简单和最短的方式解决以下问题。

如何从数组内的节点对象中取出键并将它们放置在与主数组相同的高度:

我有的:

[{ name: 'name 1', id: 1, node: [{ name: 'name2', id: 2 }]}]

我想要的是:

[{name: 'name 1', id: 1}, {name: 'name 2', id: 2}]

预先感谢您的帮助。

标签: javascriptarraysobjectecmascript-6

解决方案


你可以用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));


推荐阅读