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

如何用Array.reduce从深度嵌套对象数组提取问题编号

使用Array.reduce提取嵌套questionTree中的所有question_num

实现代码

function extractQuestionNums(questionTree) {
  return questionTree.reduce((nums, node) => {
    // 收集当前节点的question_num
    if (node.question_num) {
      nums.push(node.question_num);
    }
    // 递归处理嵌套的子节点数组(假设嵌套字段为children,可根据实际结构调整)
    if (node.children && Array.isArray(node.children)) {
      nums.push(...extractQuestionNums(node.children));
    }
    return nums;
  }, []);
}

逻辑说明

  1. 利用Array.reduce初始化空数组作为累加器,用来存储所有提取到的question_num
  2. 遍历每个节点时,先检查当前节点是否存在question_num,存在则加入累加器
  3. 如果节点包含嵌套的子节点数组(比如示例中的children),递归调用同一个函数处理子数组,并用扩展运算符将子数组的提取结果合并到当前累加器
  4. 最终返回的累加器就是所有question_num组成的扁平数组

注意事项

如果你的questionTree中嵌套子节点的字段名不是children(比如subQuestions),只需要替换代码中对应的字段名即可,逻辑完全通用。

内容的提问来源于stack exchange,提问作者Muhammad Shahzad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:32:00