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

在JavaScript中如何实现数组转换为嵌套对象的功能?

数组转嵌套对象实现方案

实现思路

可以通过从右往左遍历数组的方式完成嵌套结构的生成:从最内层的空对象开始,每轮遍历将当前数组元素作为键,上一轮生成的对象作为值,逐层向外包裹,最终得到目标嵌套结构。推荐直接使用数组的reduceRight方法完成极简实现,代码可读性高且逻辑清晰。

代码实现

1. reduceRight 极简版本

const arrToNestObj = arr => arr.reduceRight((prev, curr) => ({ [curr]: prev }), {})

2. 普通循环实现版本(兼容低版本环境)

const arrToNestObj = arr => {
  let result = {}
  // 倒序遍历数组元素
  for (let i = arr.length - 1; i >= 0; i--) {
    result = { [arr[i]]: result }
  }
  return result
}

效果验证

调用arrToNestObj(['a', 'b', 'c', 'd', 'e']),将输出符合要求的嵌套对象:

{
  a: {
    b: {
      c: {
        d: {
          e: {}
        }
      }
    }
  }
}

边界情况说明

  • 传入空数组时,函数会返回空对象{},符合预期逻辑
  • 支持数组元素为数字、Symbol等合法对象键类型

内容的提问来源于stack exchange,提问作者Chicken Knight

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:03