我正在尝试使用在线工具来缩小我的javascript代码,但是每次尝试执行此操作都会出现此错误:
// Error : Unexpected token: operator (>)
// Line : 1
// Col : 41
这是第1行:
var result = parsedObject.filter( audio => audio.filename === ''+audioFile+'' );
有人可以就这个问题及其解决方法提出建议吗?
先谢谢了。
答案 0 :(得分:2)
显然,您的Minifier无法理解arrow functions,或者需要设置一些选项来知道您正在执行ES2015 +(“ ES6 +”)工作。您的选择是:
如果有选项,请打开该选项。或
(您现在已经告诉我们您同时尝试了https://jscompress.com/和https://javascript-minifier.com/。jscompress.com的右上角有一个“ ECMAScript 2018(通过Babili)”复选框勾选时,它将最小化您的示例代码。我在javascript-minifier.com上找不到任何选项。)
如果不是,请切换到可以理解它们的助词;或
不要使用箭头功能。在这种特殊情况下,将如下所示:
var result = parsedObject.filter(function(audio) {
return audio.filename === ''+audioFile+'';
});
使用箭头功能,但在使用Babel之类的编译器进行缩小之前,将它们变成非箭头。
如果需要支持IE的任何版本,则无需向浏览器发送箭头功能(使用上述选项3或4)。如果您不必支持IE,而仅支持Edge,Chrome,Firefox和Safari等现代浏览器,则向浏览器发送箭头功能就可以了。
旁注:您不需要''
两侧的audioFile
。如果已经是字符串,则将其删除(=== audioFile
)。如果还不是字符串,则只需执行一个或另一个,或使用String(audioFile)
进行转换,然后在filter
循环之前一次进行操作:
var audioFileString = String(audioFile); // or `'' + audioFile` or `audioFile + ''`
var result = parsedObject.filter(function(audio) {
return audio.filename === audioFileString;
});
答案 1 :(得分:0)
您使用的工具不支持箭头功能(这是相对的新功能)。
您可以: