意外令牌=>;在ChromeV41和ie11的Javascript中

意外令牌=>;在ChromeV41和ie11的Javascript中,javascript,arrays,Javascript,Arrays,修复错误的快速方法是什么 意外标记=> 我写了下面的代码,它只在较高版本的chrome上运行,而在较低版本和ie11上不运行 var result = aIndice.filter(obj => { return obj.Type === "E" }) 您正在使用的箭头函数obj=>{}在Internet Explorer 11中不起作用。您需要使用诸如将ES6代码编译为ES5之类的工具,或者干脆避免使用任何现代功能 您也可以这样编写函数: var result = aI

修复错误的快速方法是什么

意外标记=>

我写了下面的代码,它只在较高版本的chrome上运行,而在较低版本和ie11上不运行

var result = aIndice.filter(obj => {
        return obj.Type === "E"
})

您正在使用的箭头函数
obj=>{}
在Internet Explorer 11中不起作用。您需要使用诸如将ES6代码编译为ES5之类的工具,或者干脆避免使用任何现代功能

您也可以这样编写函数:

var result = aIndice.filter(function(obj) {
    return obj.Type === "E"
})
箭头函数是一项功能,因此它们不会在较旧的浏览器上运行。 有些功能可以通过使用不同的多边形填充来实现,例如,但箭头函数是一种语言表达式,因此不能使用多边形填充。 通过使用,您可以知道哪些浏览器中有哪些功能可用

这个问题的解决方案是使用一个类似的工具来传输代码。 要使用babel传输脚本,您需要安装,然后启动npm项目:

$ npm init 
并安装我们需要的依赖项,以及一个供其使用的预设项

现在您需要一个babel的设置文件,您可以使用browserlist在那里定义您的目标浏览器,因此创建一个名为“.babelrc”的文件,并在其中写入:

{
  "presets": [
    ["env", {
      "targets": {
        "ie": "11",
        "chrome": 41
      }
    }]
  ]
}
将新的npm脚本添加到package.json(通过调用npm init创建) “script.js”是源脚本,“script transpiled.js”是输出脚本

"scripts": {
  "transpile": "babel script.js --o script-transpiled.js"
}
打电话

npm run transpile
现在,您的脚本将被传输到一个新文件
script transpiled.js
,您可以在目标浏览器上运行它。
要处理大型项目,建议与一起使用。

理想情况下,将Babel集成到构建过程中,以便将ES6+语法自动转换为ES5。懒惰但不可扩展的解决方案是使用标准函数代替旧版本的浏览器,并且IE不支持箭头函数?Chrome的当前版本是68。不支持Chrome 41,mark存在安全风险。谢谢。实际上,我希望避免使用现代功能并重写函数。但是如何编写需要验证的函数var erorrWorkorders=result.map(a=>a.MessageV1);erorrWorkorders=erorrWorkorders.filter(MessageV1=>MessageV1.length>6)<代码>结果.map(a=>a.MessageV1)将与
result.map(函数(a){returna.MessageV1;})相同
npm run transpile