如何动态创建对象

sha*_*ngh 1 javascript

我是Javascript的新手.我想创建动态对象数组.这里举个例子

我有一个构造函数数组,我在其中获得了一些价值.在我的构造函数中,MyItms有一些属性,如值和属性.我想通过分配或映射到属性来创建一个对象

var Item = MyItems;
    for(var i=0; i<MyItems.length; i++){
            var Values = MyItems[i]._value; // Car is my value here
            var prop =     MyItems[i]._property; // Name
                var obj ={
                    prop : Values
                };
    }
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,obj正在返回值

`prop : car`,
Run Code Online (Sandbox Code Playgroud)

我在这里期待的是名字:汽车

此外,我想要所有对象的数组MyItems任何方式来获得这个.提前致谢.

Ama*_*dan 5

在较新的JS中,你可以写这个(注意方括号):

var obj = {
    [prop]: Values
};
Run Code Online (Sandbox Code Playgroud)

在较旧的JS中,这是不可用的,你需要这样做(仍然适用于新的JS):

var obj = {};
obj[prop] = Values;
Run Code Online (Sandbox Code Playgroud)

如果您想要一个对象数组,可以在顶部初始化一个空数组:

var objs = [];
Run Code Online (Sandbox Code Playgroud)

然后将每个推obj入其中:

objs.push(obj);
Run Code Online (Sandbox Code Playgroud)

或者,更可读,您可以使用以下map功能:

var objs = MyItems.map(function(item) {
  ...
  return resultObj;
});
Run Code Online (Sandbox Code Playgroud)