推入我的javascript数组

时间:2015-02-12 10:51:31

标签: javascript arrays push jslink

我的JSlink代码需要一些帮助。

我使用了这段代码,效果很好:

var Fields = {
    "Continent": {
            "NewForm": FieldTemplate,
            "EditForm": FieldTemplate
    },
    "Country": {
            "NewForm": FieldTemplate,
            "EditForm": FieldTemplate
    },
    "City": {
            "NewForm": FieldTemplate,
            "EditForm": FieldTemplate
    }
};

但我想让它变得动态,所以我尝试了这个:

for (var i = 0; i < fields.length; i++){
    Fields.push(fields[i].name: {
        "NewForm": countryFieldTemplate,
         "EditForm": continentFieldTemplate
    });
}

在for循环中,字段是一个包含&#34;大陆&#34;,&#34;国家&#34;和&#34;城市&#34;但我的代码不起作用,我想知道原因。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用以下语法在JavaScript对象上创建属性:

Object[propertyName] = propertyValue;

所以这应该有效:

var Fields = {};
for (var i = 0; i < fields.length; i++){
    Fields[fields[i]] = {
        "NewForm": countryFieldTemplate,
         "EditForm": continentFieldTemplate
    };
}

fields的位置:

var fields = ["Continent", "Country", "City"]

答案 1 :(得分:0)

// Fields needs to be an object rather than an array
var Fields = {};

// loop over your fields array
for (var i = 0; i < fields.length; i++){

    // then just assign each field as the key to the Fields object
    Fields[fields[i]] = {
       NewForm: countryFieldTemplate,
       EditForm: continentFieldTemplate
    };
}

DEMO