方法一
JSON.stringify(arr) === '[]'
arr.length === 0
+arr === 0
上面三种判断数组为空的方法虽然大多数情况下都可以用,但依然存在bug,比如令 arr[-1] = ''
时,数组不为空,但三者都返回true,所以如果业务代码中一旦遇到这种bug,就需要来个函数了:
var arr = []
arr[-1] = ''
function isEmptyObject(e) {
var t;
for (t in e)
return false;
return true;
}
isEmptyObject(arr);
方法二
ES6新增的方法 Object.keys()
,该方法会返回一个由一个给定对象的自身可枚举属性组成的数组。
如果我们的对象为空,他会返回一个空数组,如下:
var a = {}
Object.keys(a) // []
我们可以依靠这个方法通过判断它的长度来知道它是否为空。
if (Object.keys(object).length === 0) {
return false // 如果为空,返回false
}
return true // 如果不为空,则会执行到这一步,返回true
方法三
使用 lodash
安装:
# npm
npm i --save lodash
# yarn
yarn add lodash
引入:
window._ = require('lodash');
判断:
_.isEmpty({}); // true