javascript - 制作可变键和深度的嵌套对象的最佳方法是什么?

标签 javascript json loops

制作可变键和深度的嵌套对象的最佳方法是什么?

例如,我想采用数组["one", "two", "Three"]并创建以下对象:

{ 
  one: {
    key: value,
    two: {
      key: value2,
      three: {
        key: value3
        }
      }
    }
}

我想我可以使用 for 循环,但我不确定如何跟踪每个级别。

最佳答案

您可以使用reduceRight在每个循环中添加嵌套级别。

let arr = ["one", "two", "three"],
    initialValue = { key: arr.length - 1 }

const output = arr.reduceRight((acc, k, i) => 
  ({
      [k]: Object.assign({ key: i }, acc)
  })
, initialValue)

console.log(output)

关于javascript - 制作可变键和深度的嵌套对象的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584404/

相关文章:

javascript - jquery函数循环两次

Java Do-while 循环不起作用?

javascript - 将 HTML 实体分配给 innerHTML 时出现 DOM 异常

javascript - 使文本转到新文本

php - 通过 JSON 将 HTML 从 PHP 发送到 javascript

android - 接收外语 Json(例如俄语)Android

java - 为什么我的程序会循环多次? Java小程序

javascript - 什么时候应该在 Redux reducer 中深度克隆状态的哪一部分?

JavaScript 创建新对象

javascript - 使用 d3.request 读取包含特殊字符的文本文件