You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用find方法过滤对象时遇'Expected an identifier and instead saw let'错误求助

解决"Expected an identifier and instead saw 'let'"错误的方案

嘿,我来帮你拆解这个问题!你碰到的Expected an identifier and instead saw 'let'报错,核心原因很简单——你的代码运行环境不支持ES6的let变量声明,或者是代码检测工具(比如JSHint、ESLint)没配置成允许ES6语法。

为啥会报错?

  • 早期的JavaScript环境(比如旧版IE、或者一些没做ES6兼容配置的项目)只认ES5及更早的语法,let是ES6才新增的变量声明方式,这些环境会把let当成非法的标识符,直接抛错。
  • 另外如果用了代码检查工具,比如JSHint默认是不开启ES6支持的,它也会抛出这个提示,认为let是不合法的写法。

两种解决办法任你选

1. 让环境支持ES6

如果是在浏览器里运行,尽量换成Chrome、Firefox这类现代浏览器;如果是项目开发场景,比如用了Webpack+Babel,就配置Babel把ES6代码转成ES5兼容版本;要是用了代码检查工具,在配置文件里开启ES6支持就行(比如JSHint的配置里加"esversion": 6)。

2. 改用ES5语法替代

如果暂时没法调整环境,直接把let换成ES5的var就行,在这个场景下功能完全一致:

var arr = $scope.items; //object data 
var stringToFilter = newSortingOrder.toString(); 
var obj = arr.find(o => o.id === stringToFilter); 

⚠️ 额外提醒:Array.find()也是ES6的方法,如果你的运行环境连这个也不支持,就换成ES5的filter写法取第一个匹配项:

var obj = arr.filter(function(o) {
  return o.id === stringToFilter;
})[0];

内容的提问来源于stack exchange,提问作者Mr world wide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:33:09