向basket数组填充对象后获取length返回undefined问题求助
问题与解决思路
问题描述
- 代码中向
basket数组填充对象,但调用basket.length时返回undefined - 调试界面中
basket的length属性显示为浅色,怀疑这是问题诱因
(注:相关截图包括填充数组的代码、逻辑代码、调试时length浅色显示的界面)
原因分析
- 调试时
length显示浅色,说明这个length不是数组原生的内置属性:basket可能被意外修改为非数组类型(比如对象、null等),此时数组原生的length属性不存在,调用自然返回undefined- 手动给
basket添加了自定义的length属性,且该属性值被设置为undefined basket是类数组对象,但未正确定义length属性
解决步骤
- 验证
basket的类型:在控制台执行console.log(Array.isArray(basket)),若返回false,则将basket重新初始化为数组basket = []后再填充元素 - 排查代码中是否存在覆盖
basket的逻辑,比如误将其赋值为对象、null等非数组类型 - 查看调试器内
basket的结构:- 若为对象,检查是否存在自定义
length属性,若有则删除该属性,确保basket是数组类型 - 若为数组,浅色的
length说明是自定义属性,需排查代码中哪里修改了这个属性,恢复数组原生的length
- 若为对象,检查是否存在自定义
内容的提问来源于stack exchange,提问作者Mehraj Mammadov
相关产品推荐
相关产品推荐

