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

JavaScript TypeError:无法读取未定义属性问题求助

解决JavaScript中Cannot read properties of undefined (reading '0')报错

问题原因

报错的核心是openingHours.weekdays的值为undefined——weekdays是一个独立的数组变量,并没有被定义为openingHours对象的属性。你能正常访问openingHours.mon,说明openingHours对象本身存在且包含mon属性,但它和独立的weekdays数组没有任何默认关联。

解决方案

根据实际需求,有三种处理方式:

1. 将weekdays挂载到openingHours对象上

如果需要让openingHours包含weekdays属性,直接给对象添加该属性即可:

const weekdays = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];
// 定义openingHours时添加属性,或后续动态追加
const openingHours = {
  mon: { /* 原有属性值 */ },
  // 其他属性...
  weekdays // ES6简写,等价于weekdays: weekdays
};

// 现在可正常访问
console.log(openingHours.weekdays[0]); // 输出'mon'

2. 通过weekdays元素访问openingHours对应属性

如果真实需求是用weekdays里的元素作为键名,获取openingHours的对应属性值,直接用数组元素作为对象的方括号索引:

console.log(openingHours[weekdays[0]]); // 等价于openingHours.mon,正常返回对应值

3. 安全访问(兜底方案)

如果不确定openingHours.weekdays是否存在,可用**可选链操作符?.**避免报错:

console.log(openingHours?.weekdays?.[0]);
// 若openingHours或weekdays不存在,仅返回undefined,不会抛出错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:11:01