Javascript:将键数组转换为空对象?

时间:2018-07-18 16:45:14

标签: javascript node.js algorithm recursion

我知道这可能比我的大脑要容易做,但是由于某种原因,我无法正确地做到这一点:

我有一个看起来像这样的数组:

["engine", "engine.car", "engine.car.driver", 
 "engine.car.passenger", "wheels", "wheels.tires"]

我想将上述数组转换为该对象:

{
    engine : {
        car : {
            driver : undefined,
            passenger: undefined
        }
    },
    wheels : {
        tires: undefined
    }
 }

我正在使用8.10.0节点。

1 个答案:

答案 0 :(得分:-2)

使用JavaScript和eval功能非常简单。这是一个简单的例子。

var arr = ["engine", "engine.car", "engine.car.driver",  "engine.car.passenger", "wheels", "wheels.tires"];
 
obj = {};
for(var i = 0; i < arr.length; i++)
	eval("obj." + arr[i] + " = {}");
  
console.log(obj);

编辑:因此,对于eval的使用,我似乎感到沮丧。 Eval不是邪恶的,它的大多数实现都是邪恶的,但这是对它的完全有效的使用,如下面的注释所述,请不要仅仅因为它使用eval而投票。如果您确实对发布的答案有疑问,请随时使用评论让我知道原因,以便我可以更新答案或OP可以获取他们需要的帮助。