0

这里我有一个数组place.reviews,但这个数组有时是空的,所以我需要编写一个函数,首先检查数组是否为空,如果不是,则从数组中获取数据......

所以我尝试:

if (!!place.reviews) for(var i=0;i<place.reviews.length;i++){
  contentStr += '<br>'+ place.reviews[i].text+ '</br>';
}       

但是这段代码对我不起作用?

这里有问题 if (!!place.reviews)还是...?

4

4 回答 4

2

那是因为任何非空对象都是“真实的”。

假设您的数组可能是undefined(如果它不能在循环之前进行测试没有意义),您应该这样做

if (place.reviews && place.reviews.length)
于 2013-09-16T11:18:42.140 回答
2

为什么要检查是否为

for(var i=0;i<place.reviews.length;i++)

如果 place.reviews.length 为 0,则您的 for 循环体根本不会执行。

于 2013-09-16T11:20:29.117 回答
1
if (place.reviews.length > 0)
于 2013-09-16T11:18:39.623 回答
1

您的 if 语句格式不正确,请使用以下命令:

if (place.reviews.length) 
    for(var i=0;i<place.reviews.length;i++) {
        contentStr += '<br>'+ place.reviews[i].text+ '</br>';
    }   
于 2013-09-16T11:18:15.483 回答