当前位置: 首页 > 知识库问答 >
问题:

分析错误:意外令牌,应为“”,语法错误:意外令牌“['[重复]

逑翰翮
2023-03-14

应用程序。js公司

let ids = [1, 2, 3];

let obj = {};

for (let i in ids) {
  obj = { ...obj, ids[i]: "" };   
}

console.log(obj);

在执行上述代码时,我得到以下错误。

Parsing error: Unexpected token, expected ","

  4 |
  5 | for (let i in ids) {
> 6 |   obj = { ...obj, ids[i]: "" };  
    |                      ^
  7 | }
  8 |
  9 | console.log(obj);eslint

当我将鼠标悬停在线上方时,会出现这个错误 在我的VS代码中。

当我使用node运行代码时,即在nodeapp.js上。我在终端中收到以下错误:

obj = { ...obj, ids[i]: "" };  
                     ^

SyntaxError: Unexpected token '['
    at wrapSafe (internal/modules/cjs/loader.js:988:16)
    at Module._compile (internal/modules/cjs/loader.js:1036:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47

我做错了什么?我希望最后的obj的值是{1:,2:,3:}

共有3个答案

巢靖
2023-03-14

是[i]是应该是resolve runtime的键,因此您应该使其成为计算属性名

从ECMAScript 2015开始,对象初始值设定项语法还支持计算属性名称。这允许您将表达式放在括号[]中,该表达式将被计算并用作属性名称。这让人想起属性访问器语法的括号符号,您可能已经使用它来读取和设置属性了。-MDN公司

let ids = [1, 2, 3];

let obj = {};
for (let i in ids) {
  obj = { ...obj, [ids[i]]: "" };
}

console.log(obj);
戚衡
2023-03-14

使用[id[i]]代替id[i]

let ids = [1, 2, 3];

let obj = {};

for (let i in ids) {
  obj = { ...obj, [ids[i]]: "" };
}

console.log(obj);
笪智志
2023-03-14

有几种解决方案。

  1. 用括号括起来:
for (let i in ids) {
  obj = { ...obj, [ids[i]]: "" }; // Brackets make it act as a key name instead of something else
}
for (let i in ids) {
  obj[ids[i]] = ""; // This adds a value
}
 类似资料:
  • 问题内容: 我尝试了以下简单的JavaScript代码: 例如,在Chrome控制台中,这将返回 SyntaxError:意外令牌: 我在JSONLint上尝试了JSON ,它是有效的。 您看到错误了吗? 问题答案: FWIW,改为使用。比。

  • 问题内容: 尝试解析此JSON字符串时出现错误 扩展的字符串对象: 问题答案: 验证您的json字符串。如果可以,请尝试以下操作:

  • 在My Gulpfile.js错误部分: 我的包裹。json: 我运行并得到以下错误。 在终端屏幕中: gulp.task('webpack',gulp.series(async()=

  • 问题内容: 我键入的代码与《 Linux命令行:完整介绍》 (第369页)相同,但提示错误: 代码是这样的: 我想了解是什么导致了错误?如何修改代码?我的系统是Ubuntu。 问题答案: 和之间必须有一个空格,如下所示: 这些(及其组合)也都是 不正确的 : 另一方面,这些都可以: 顺便说一句,这些是等效的: 这些也等效: 而且,您的脚本的中间部分应该像这样更好: (我也将引号中的引号删除了,因为

  • 问题内容: 我在Mac上写了一个示例脚本 通过显示Example可以正常工作 当我在RedHat机器上运行此脚本时,它说 意外令牌附近的语法错误’ 我检查了bash是否可用 有人遇到过同样的问题吗? 提前致谢 ! 问题答案: 这可能是文件编码问题。 在不同操作系统和编辑器之间处理文件时遇到了文件类型编码问题,在我的情况下,尤其是在Linux和Windows系统之间。 我建议检查文件的编码,以确保它

  • 我正在尝试使用React创建一个简单的网站,但由于某些原因,它只显示一个空白页面。 显示在控制台日志上的错误是未捕获的语法错误:意外令牌 非常感谢。 HTML: 主JS: Navbar: 身体