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

JavaScript代码调用toLowerCase时触发「无法读取undefined属性」错误求助

错误原因排查

1. 数组keys定义错误

你把keys写成了单个字符串元素["type, name"],遍历的时候会用"type, name"作为键去访问item的属性,而totalCar里的对象不存在这个复合键,导致item[key]返回undefined,调用toLowerCase()自然触发报错。

2. 未处理属性值为空的情况

就算keys定义正确,若totalCar里的某个对象缺少type或name属性,或者属性值为null/undefined,调用toLowerCase()也会触发同样的错误。

解决方法

第一步:修正keys数组

把单个字符串拆成两个独立元素:

const keys = ["type", "name"]

第二步:添加空值保护

在调用toLowerCase()前,先确保属性值存在且是字符串类型,推荐用可选链操作符结合空值合并操作符处理:

const keys = ["type", "name"]
const search = () => {
  return totalCar.filter((item) => keys.some((key) => 
    (item[key]?.toLowerCase() ?? "").includes(query)
  ));
};

如果运行环境不支持ES2020+语法,用兼容的判断方式:

const keys = ["type", "name"]
const search = () => {
  return totalCar.filter((item) => keys.some((key) => {
    const value = item[key];
    return typeof value === 'string' && value.toLowerCase().includes(query);
  }));
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:15:37