我想获取一些JSON值并从中获取变量,但是当我这样做时会出现错误。
在第一阶段,JSON数组为空,这就是为什么我使用if != null的原因,但是即使使用填充数组,我也会收到一个错误。

var tempJS=[];
$("#sth td").each(function(){
    $this = $(this);
    tempJS.push({"COLOR":$this.attr("data-color"),});
});
console.log(JSON.stringify(tempJS));

if(tempJS!=null) var kolor=tempJS[c-1].COLOR;


为什么最后一行给我以下错误:


  未捕获的TypeError:无法读取未定义的属性“ COLOR”

最佳答案

如果您在控制台上尝试:

[]==null
> false


您会看到返回false。这意味着,如果检查数组是否等于null,则将始终返回false,并始终在if语句中运行代码。

您应该改为:

if(tempJS.length) var kolor=tempJS[c-1].COLOR;


您不需要if(tempJS.length > 0),因为每个数字都像true一样对待,除了0表示false

关于javascript - JSON-未捕获的TypeError:无法读取未定义的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25090686/

10-10 00:32