我试图将数组元素设置为对象属性
简化示例:
var array = ['a', 'b', 'c'];
var obj = { array[1]: 'good' }
Run Code Online (Sandbox Code Playgroud)
上面会导致错误.
更新:事实上,我将对象作为另一个数组的一部分传递,即一个简化的例子是:
aObj[value] = ['one', {array[1]: 'good'}, 'two', 'three', 'four'];
Run Code Online (Sandbox Code Playgroud)
设置obj[array[1]] = 'good';样式意味着使用
aObj[value][1][array[1]] = 'good';
Run Code Online (Sandbox Code Playgroud)
{ array[1]: 'good' }因为,当你在JavaScript中使用对象的文字符号,它之前将字符串抛出一个错误:的标识和有效的标识符名称不能[或]在里面.
因此,使用[]符号,它允许任何字符串用作属性名称,如下所示
var array = ['a', 'b', 'c'];
var obj = {};
obj[array[1]] = 'good';
Run Code Online (Sandbox Code Playgroud)
也许是时候开始给出 ES6 的答案了。在 ECMAScript6 中,您可以使用表达式作为对象键:
var array = ['a', 'b', 'c'];
var obj = {
[array[1]]: 'good'
}
Run Code Online (Sandbox Code Playgroud)
事实上,Firefox 已经支持这种语法。
目前使用变量的唯一方法是使用括号表示法,如其他答案中所述。
| 归档时间: |
|
| 查看次数: |
8371 次 |
| 最近记录: |