大家好,我的数组如下,但是当我遍历数组时,出现错误提示
无法读取未定义的属性长度”
即使我执行console.log(typeof ABLE_LIST_1)
,它也会打印Object
,但这是一个数组。
请帮忙吗?
const TABLE_LIST_1 = [
{ x: 10, y: 180 },
{ x: 20, y: 200 },
{ x: 50, y: 380 },
{ x: 70, y: 50 },
{ x: 90, y: 200 },
{ x: 210, y: 50 }
];
答案 0 :(得分:0)
无法读取未定义的属性“ length”
这意味着JavaScript无法识别 TABLE_LIST_1 数组。 可能有不止一种情况。 可能是您在声明中使用了其他名称。 使用TABLE_LIST_1.length后可能会加载TABLE_LIST_1。
在反应中,由于状态变化,它通常会发生。 您可以在使用TABLE_LIST_1.length之前检查TABLE_LIST_1是否存在。
if (TABLE_LIST_1) {
console.log(TABLE_LIST_1.length);
}
如果您可以共享代码,那么它将更有帮助。由于此示例未解释此数组的用例。
答案 1 :(得分:-2)
const TABLE_LIST_1 = [
{ x: 10, y: 180 },
{ x: 20, y: 200 },
{ x: 50, y: 380 },
{ x: 70, y: 50 },
{ x: 90, y: 200 },
{ x: 210, y: 50 }
];
console.log(Array.isArray(TABLE_LIST_1));
console.log(TABLE_LIST_1.length);
您不能检查它是否是一个带有“ typeof”的数组,可以像上面那样使用“ Array.isArray”来检查它。而且您也可以像上面那样获得数组的长度。
答案 2 :(得分:-2)
请找到下面的代码片段,它工作正常:
const TABLE_LIST_1 = [
{ x: 10, y: 180 },
{ x: 20, y: 200 },
{ x: 50, y: 380 },
{ x: 70, y: 50 },
{ x: 90, y: 200 },
{ x: 210, y: 50 }
];
for(var i=0;i<TABLE_LIST_1.length;i++) {
console.log(TABLE_LIST_1[i]);
}
结果:
//{x: 10, y: 180}
//{x: 20, y: 200}
//{x: 50, y: 380}
//{x: 70, y: 50}
//{x: 90, y: 200}
//{x: 210, y: 50}