通过javascript将数组转换为json对象

Le *_*Anh 8 javascript arrays algorithm json data-structures

我坚持要解决这个问题。转换下面的数组

var input = [
    'animal/mammal/dog',
    'animal/mammal/cat/tiger',
    'animal/mammal/cat/lion',
    'animal/mammal/elephant',
    'animal/reptile',
    'plant/sunflower'
]
Run Code Online (Sandbox Code Playgroud)

到 json 对象

var expectedResult = {
 "animal": {
  "mammal": {
   "dog": true,
   "cat": {
    "tiger": true,
    "lion": true
   },
   "elephant": true
  },
  "reptile": true
 },
 "plant": {
  "sunflower": true
 }
}
Run Code Online (Sandbox Code Playgroud)

我可以申请哪种数据结构和算法?谢谢

Ria*_*res 1

您可以创建一个函数,用“/”对数组中的每个元素进行切片,然后将结果放入变量中,然后挂载 Json。我的意思是这样的:


    window.onload = function() {
      var expectedResult;
      var input = [
        'animal/mammal/dog',
        'animal/mammal/cat/tiger',
        'animal/mammal/cat/lion',
        'animal/mammal/elephant',
        'animal/reptile',
        'plant/sunflower'
    ]

      input.forEach(element => {
        var data = element.split('/');

        var dog = data[2] === 'dog' ? true : false
        var tiger = data[2] === 'cat' && data[3] === 'tiger'  ? true : false
        var lion = data[2] === 'cat' && data[3] === 'lion'  ? true : false


        expectedResult = {
          data[0]: {
            data[1]: {
             "dog": dog,
             "cat": {
              "tiger": tiger,
              "lion": lion
             }
            }
          }
        }
      })
    }
Run Code Online (Sandbox Code Playgroud)