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

JavaScript按字符串过滤数组调用includes报undefined如何解决

报错原因

你的推测正确,报错触发的核心原因是数组中存在未携带AcctNum属性的元素,访问这类元素的o.AcctNum会返回undefined,对undefined调用includes方法就会抛出TypeError类型错误。

解决方案

只需修改filter的回调逻辑,先校验AcctNum属性合法性再执行匹配即可,两种常用实现方案如下:

方案1:可选链写法(ES2020+环境适用)

借助可选链操作符?.简化判断,若AcctNum不存在会直接返回假值,自动被filter过滤:

var accDC = acco.filter(o => o.AcctNum?.includes(payacc));

方案2:显式校验写法(兼容低版本JS环境)

显式判断属性存在且为字符串类型,再执行匹配逻辑,兼容性更好:

var accDC = acco.filter(o => {
  // 跳过无AcctNum属性、或属性不是字符串的元素
  if (typeof o.AcctNum !== 'string') return false;
  return o.AcctNum.includes(payacc);
});

两种方案都可以正常过滤出AcctNum包含目标字符串的元素,不会触发报错。

内容的提问来源于stack exchange,提问作者augustus182l

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:15:08