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

求助:如何完成JavaScript嵌套数组转嵌套对象的递归实现

嵌套数组转嵌套对象的实现方案

你的思路完全正确,核心就是递归处理嵌套的数组值,现有代码只差关键一步——把递归调用的结果赋值给对应的对象属性。

修正后的完整代码

const nestedArrayToObject = function (arr) {
  let obj = {};
  for (let i = 0; i < arr.length; i++) {
      let key = arr[i][0];
      let val = arr[i][1];
      // 若值为数组则递归转换为对象,否则直接赋值
      obj[key] = Array.isArray(val) ? nestedArrayToObject(val) : val;
  }
  return obj;
};

验证示例

  • 测试第一个输入:
console.log(nestedArrayToObject([['a', 1], ['b', 2], ['c', [['d', 4]]]]));
// 输出:{ a: 1, b: 2, c: { d: 4 } }
  • 测试第二个输入:
console.log(nestedArrayToObject([['a', 1], ['b', 2], ['c', [['d', [['e', 5], ['f', 6]]]]]]));
// 输出:{ a: 1, b: 2, c: { d: { e: 5, f: 6 } } }

逻辑说明

  1. 遍历输入数组的每一项,每一项都是[键, 值]的固定结构
  2. 对值做类型判断:如果是数组,递归调用当前函数将其转换为嵌套对象,再赋值给当前键;如果是非数组类型,直接赋值
  3. 递归会自动逐层处理多层嵌套的数组,直到遇到非数组类型的值才停止递归

内容的提问来源于stack exchange,提问作者Sina molaverdikhani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:40:58