JSON - 未捕获的TypeError:无法读取undefined的属性

时间:2014-08-02 01:11:05

标签: javascript json

我想从它们中获取一些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”

2 个答案:

答案 0 :(得分:3)

如果您尝试使用控制台:

[]==null
> false

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

你应该这样做:

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

您不需要if(tempJS.length > 0),因为除了true之外,每个号码都被视为0,这意味着false

答案 1 :(得分:1)

零长度数组与null不同。尝试测试if (tempJS.length > 0) ...