JavaScript:不使用`eval`将平面数组转换为树状结构

Not*_*123 1 javascript arrays javascript-objects

我有这样的数组["aaa","aaa","bbb","ccc"].

我需要的是将它转换为这样的形式:

{ "aaa" :
  { "aaa" :
    { "bbb" :
      { "ccc" : 1 }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道eval可以做到这一点,但有没有更漂亮的解决方案?

感谢您阅读我的帖子.

Ori*_*ori 5

使用Array.reduceRight().在每次迭代时返回一个对象,前一个结果作为当前属性的值:

const arr = ["aaa","aaa","bbb","ccc"]

const result = arr.reduceRight((r, s) => ({ [s]: r }), 1)

console.log(result)
Run Code Online (Sandbox Code Playgroud)