将对象推送到数组时出现Javascript意外的标记点

时间:2015-07-27 20:56:37

标签: javascript

我有以下代码,我在创建对象数组,当我将对象推送到数组时,它会说出意外的令牌。

var rulesArray = [];
var messagesArray = [];

var selectedRows = j$('table[id$="selectedProductsDiv"] tr').has('[id$="checkBoxColumn"] :checkbox:checked');

for(i = 0; i<selectedRows.length; i++){
    var element = j$(selectedRows[i]).find('input[id$="quantityId"]');

    rulesArray.push({
        j$(element).attr("name") : "required" //It shows error on this line.
    });

    messagesArray.push({
        j$(element).attr("name") : "Field cannot be blank"
    });
}

请问大家请帮助我吗?

1 个答案:

答案 0 :(得分:5)

如果你想拥有动态密钥,你需要先用括号表示法构造对象,然后将其推送到数组:

var rules = {};
rules[j$(element).attr("name")] = "required";
rulesArray.push(rules);

在ES2015(ES6)中,对象初始化期间也支持括号语法:

rulesArray.push({
    [j$(element).attr("name")] : "required"
});