JavaScript如何使用递归将嵌套对象数组转换为仅含config的扁平结构
问题原因
你现有代码存在两个核心问题:
- 用
map遍历数组时,若节点存在子节点会直接返回递归后的数组,最终结果会是多层嵌套的结构,而非扁平数组 - 当节点有子节点时,逻辑直接返回了子节点递归结果,完全丢弃了当前节点的
config属性,导致父级、子级节点的配置丢失
递归实现方案
const recur = (arr) => { const result = []; arr.forEach(item => { // 优先递归处理子节点,合并子节点返回的配置结果 if (item.children && item.children.length) { result.push(...recur(item.children)); } // 再加入当前节点的配置,保证顺序和预期一致 result.push(item.config); }); return result; }; // 调用测试 const result = recur(arr); console.log(result);
这段代码的输出完全符合你给出的预期结构和顺序:先输出最深层的子孙节点配置,再依次向上输出各级父节点配置,最终得到全扁平的配置数组。
内容的提问来源于stack exchange,提问作者user16860065
相关产品推荐
相关产品推荐

