动态创建JavaScript对象的实例字段

Joh*_*n R 4 javascript

我有一个动态创建的字符串列表,称为"变量".我需要使用这些字符串作为JavaScript对象数组的实例变量.

var objectsArr  = [];
function obj(){};

for (var i=0; i<someNumberOfObjects; i++ ) {
    ...
    objectsArr[i] = new Object();           


    for (var j=0; j<variables.length; j++) {
        objectArr[i].b = 'something';  //<--this works, but...
        //objectArr[i].variables[j] = 'something';  //<---this is what I want to do.
    }       
}
Run Code Online (Sandbox Code Playgroud)

注释掉的线显示了我想要做的事情.

Kir*_*oll 9

您可以使用括号语法按名称操作属性:

objectArr[i][variables[j]] = 'something';
Run Code Online (Sandbox Code Playgroud)

换句话说,从objectArr索引处获取对象i然后找到具有名称的字段variables[j]并将该字段的值设置为'something'.

一般而言,给定对象o:

var o = {};
Run Code Online (Sandbox Code Playgroud)

您可以按名称设置属性:

o['propertyName'] = 'value';
Run Code Online (Sandbox Code Playgroud)

并以通常的方式访问它:

alert(o.propertyName);
Run Code Online (Sandbox Code Playgroud)