一个简单的例子,为什么会出错?
var zipped = [[0,1,2]];
var extracted = {};
var i = 0;
extracted[zipped[i][0]] = { zipped[i][1]: zipped[i][2] }
>>>Uncaught SyntaxError: Unexpected token [(…)
当这完全没问题的时候?
extracted[0] = { 1: 2 }
答案 0 :(得分:2)
因为Javascript对象文字语法不允许关键部分中的表达式。键总是字面的。这就是你写这个的原因:
{ foo: 'bar' }
并且foo
不被视为变量。
对于变量键,您始终必须使用此模式:
var obj = {};
obj[varKey] = value;
答案 1 :(得分:0)
这是无效的语法。在对象文字中语法上允许一个数字。任意表达都不是。
相反,您需要创建对象,然后设置属性。
var obj = extracted[zipped[i][0]] = {};
obj[ zipped[i][1] ] = zipped[i][2];