You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:45:03