判断数组不为空

2,292 阅读1分钟
原文链接: my.oschina.net

假设后台返回的接口数据res里包含了一个字段list,list不是空数组的时候我们才会进行循环,否则就会报错,但是怎么判断他不是空数组呢?

let list=res.list 

if(list){ 

    if(list.length>0){

            //循环

    }

}

上面的代码中我是在第二层判断里进行的数组循环,为什么要多此一举加一层list.length>0的判断呢?

javaScript里null、数字0、空字符串这些在if判断里都会被转化为false,但是如果后台直接返回一个空数组[ ],在判断里是会被转化成true的,因此还要再加一层判断list.length>0,同时写判断的时候要注意,这两个判断是嵌套关系,不能写成list&&list.length>0,如果list的值为null,&&后面的list.length>0就会报错,因为编译时找不到list的length属性。

ps:写成三目运算符代码会更简洁