无法读取未定义的属性“长度”

时间:2019-12-18 06:50:06

标签: javascript reactjs ecmascript-6 frontend

大家好,我的数组如下,但是当我遍历数组时,出现错误提示

  

无法读取未定义的属性长度”

即使我执行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 }
];

3 个答案:

答案 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}