冰冰的小屋

路漫漫其修远兮,吾将上下而求索

数组和对象判断是否为空

判断一个数组是否为空

注意:判断数组 array 是否为空数组,即 [],需要用 array.length === 0 判断,不能直接比较 [] 。因为[] !== [] 为 true

js 中的数据类型 字符串、数字、布尔、数组、对象、Null、Undefined === 全等比较比较 2 个相同类型的对象,如果类型不同,就直接返回 false,如果类型相同,那就比较具体的值或具体的引用地址。

所以在判断数组是否为空时,可以使用以下代码对象在做逻辑判断的时候,如果值为 null, undefined,转化 boolean 值 false。

 

具体可以参看 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness

判断一个对象是否为空

js 中一般判断一个对象是否为空,可以写一个方法用 for..in 遍历,然后返回是否为空,

不过在 ES5 中对象有一个很奇妙的一个遍历对象的方法,Object.keys(object);

这个方法接受一个对象作为参数,对这个对象的键进行遍历,并返回一个数组集合。

到这里就显而易见了。判断数组为空有很多方法,取第一个元素、数组长短等都可以判断。

所以判断一个对象为空可以写为:

注:不要使用Object.keys({})[0],因为对象的键可以为数字,类似 jq 对象就是数组为 0 的对象,
例子:Object.keys({ 0: '测试' })[0] //结果是 0,其实我们期望的正确结果是 true,但是这个确实 false。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注