如何摆脱object.key的编辑器错误

我有以下代码,基本上获取一些JSON数据,查找具有“servergenre”的键,并将结果保存在数组中。 这是对这个问题的跟进。

let result = []; Object.keys(data).forEach( key => { if(/servergenre/.test(key)){ result.push(data[key]) } }); 

即使代码工作正常,在某些编辑器中也会引发语法错误:

  • key ”:无法解析的变量或类型键
  • => ”:表达预期
  • “if( / server …”:预期的正式参数名称
  • )){ ”:,预期
  • }); ”:预期陈述

这是一张图片,显示错误的位置:

带有错误下划线的代码截图

正如我所说,代码工作正常,我只需要修复它或另一种方法来摆脱错误。

此外,许多压缩器和缩放器不支持这段代码。 所以我无法缩小它。

提前致谢。

ES2015,以前称为ES6,是JavaScript的更新版本,它为您正在使用的函数引入了诸如=>语法的function。

并非所有浏览器都完全支持ES2015的所有function,因此许多使用它的人首先通过编译器(“transpiler”)将其转换为ES5,所有浏览器都支持ES5。 巴贝尔是一个这样的转发器。 但是,如果您只针对较新的浏览器,那么可以解释为什么=>语法适合您。

您只需更改编辑器设置即可理​​解该语法。 具体如何操作取决于您使用的文本编辑器。 可能是您的编辑器的内置JavaScript模式不知道如何阅读ES2015语法,您需要升级编辑器或安装提供更新的错误检查程序的第三方插件。 或者可能是您的编辑器同时支持ES5和ES2015,它认为您只是在ES5中编写项目。 在这种情况下,您只需要进入设置并告诉编辑您对此项目的意思是使用ES2015(或ES2016,这是目前最新的版本)。

胖箭是ES6语法。 如果这会导致麻烦,那就写下好老的ES5吧:

 let result = []; Object.keys(data).forEach( function(key) { if(/servergenre/.test(key)){ result.push(data[key]) } });