在循环中创建新对象实例

Phi*_*hil 6 javascript

我正在尝试通过循环为数组中的每个项创建一个新对象.对象的名称应该基于数组的键.

所以对于这个数组:

var arr = new Array(
    "some value",
    "some other value",
    "a third value"
);
Run Code Online (Sandbox Code Playgroud)

会导致三个对象:

alert(object1.value);
alert(object2.value);
alert(object3.value);
Run Code Online (Sandbox Code Playgroud)

我到目前为止的代码(但不起作用)是:

// Object
function fooBar(value) {
    this.value = value;
    ...
}

// Loop
var len = arr.length;
for (var i = 0; i < len; i++) {
    var objectName = object + i;
    var objectName = new fooBar(arr[i]);
}
Run Code Online (Sandbox Code Playgroud)

我要求的甚至是否有意义?

u8s*_*and 10

您还必须创建一个对象数组

var objs = new Array();

for(var i = 0; i < len; i++) {
  objs[i] = new fooBar(arr[i]);
}

alert(objs[0].value);
Run Code Online (Sandbox Code Playgroud)


Ted*_*opp 5

您可以映射数组:

var arr = new Array(
    "some value",
    "some other value",
    "a third value"
);
var fooBars = arr.map(function(x) { return new fooBar(x); });
Run Code Online (Sandbox Code Playgroud)

然后,您可以访问每个值:

alert(fooBars[0].value);
// etc.
Run Code Online (Sandbox Code Playgroud)

或一次全部处理:

fooBars.forEach(function (foo) { alert(foo.value); });
Run Code Online (Sandbox Code Playgroud)