JSON-未捕获的类型错误:无法读取未定义的属性
2014-08-02
6608
我想获取一些 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;
为什么最后一行给我以下错误:
Uncaught TypeError: Cannot read property 'COLOR' of undefined
2个回答
如果您在控制台上尝试:
[]==null
> false
您将看到返回
false
。这意味着如果您检查数组是否等于
null
,您将始终得到 false,并且始终在
if
语句中运行代码。
您应该改为这样做:
if(tempJS.length) var kolor=tempJS[c-1].COLOR;
您不需要
if(tempJS.length > 0)
,因为每个数字都被视为
true
,除了
0
表示
false
。
Marco Bonelli
2014-08-02
零长度数组与 null 不同。尝试测试
if (tempJS.length > 0) ...
anon
2014-08-02