在 Chrome 中,以下 JavaScript 代码会引发意外 token 错误:
var somearray = ["foo","bar"];
var someassoc = {somearray[0]:somearray[1]};
抛出的错误:
Uncaught SyntaxError: Unexpected token [
相反,我希望它应该创建一个 key 为 somearray[0]
的对象以及 somearray[1]
的项目对于该键。
那么,为什么会发生这种情况呢?安Unexpected Token
通常意味着括号被放错地方了,等等,但这里的情况并非如此。
最佳答案
JS 对象字面量的键必须是静态键,或者是包含在 []
中的表达式(需要 ES2015 支持)。
您的代码的问题是 somearray[0]
键无效。
因此,如果您需要 ES5 方式,请将其重写为
var somearray = ["foo","bar"];
var someassoc = {};
someassoc[somearray[0]] = somearray[1];
对于 ES2015,您使用
var somearray = ["foo","bar"];
var someassoc = { [somearray[0]]: somearray[1]};
标准的相关部分:
简而言之: key 必须是有效的标识符。
关于javascript - 使用数组项作为对象中的键时出现意外 token 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34713095/