IE11中Array.find嵌套解构参数报错SCRIPT1010的问题求助
解决IE11中
Array.find回调的语法错误问题 这个错误的根源不是Array.find本身(你已经补了polyfill),而是IE11完全不支持ES6的数组解构语法——你在回调函数参数里写的function([[l,r]])属于嵌套解构,IE11的JS引擎根本无法识别这种写法,所以抛出了SCRIPT1010: Expected Identifier语法错误。
修复方案:替换解构为传统数组索引访问
把参数里的解构逻辑移到函数内部,用IE11支持的ES5语法获取对应的值:
原代码:
item = totalsArray.find(function([[l,r]]) { return l === a && r === b });
修改后:
item = totalsArray.find(function(arrItem) { // 从二维数组中取出目标值 var innerPair = arrItem[0]; var l = innerPair[0]; var r = innerPair[1]; return l === a && r === b; });
额外提醒
IE11对ES6+特性的支持非常有限,如果你代码里还有其他ES6语法(比如let/const、箭头函数、模板字符串等),都需要转译为ES5才能在IE11正常运行。推荐使用Babel这类工具做代码转译,避免类似的语法兼容问题。
内容的提问来源于stack exchange,提问作者qaakmnd
相关产品推荐
相关产品推荐

