1

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

我需要的是把它转换成这样的形式:

{ "aaa" :
  { "aaa" :
    { "bbb" :
      { "ccc" : 1 }
    }
  }
}

我知道eval可以解决问题,但是有没有更漂亮的解决方案?

感谢您阅读我的帖子。

4

1 回答 1

5

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

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

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

console.log(result)

于 2018-12-21T14:49:04.967 回答