将数组元素设置为对象属性

时间:2015-02-25 13:40:00

标签: javascript object

我正在尝试将数组元素设置为对象属性

简化示例:

var array = ['a', 'b', 'c'];
var obj = { array[1]: 'good' }

上面会导致错误。

更新:实际上,我将对象作为另一个数组的一部分传递,即一个简化示例:

aObj[value] = ['one', {array[1]: 'good'}, 'two', 'three', 'four'];

设置obj[array[1]] = 'good';样式意味着使用

aObj[value][1][array[1]] = 'good';

2 个答案:

答案 0 :(得分:6)

{ array[1]: 'good' }会抛出错误,因为当您在JavaScript中使用Object文字符号时,它会将:之前的字符串视为标识符,并且有效的标识符名称不能包含[或{ {1}}在其中。

所以,使用]表示法,它允许任何字符串用作属性名称,如下所示

[]

答案 1 :(得分:3)

也许现在是开始提供ES6答案的时候了。在ECMAScript6中,您可以将表达式用作对象键:

var array = ['a', 'b', 'c'];
var obj = {
    [array[1]]: 'good'
}

事实上,Firefox已经支持这种语法。

目前使用变量的唯一方法是使用括号表示法,如其他答案中所述。