对象不能直接进行判断是否为空
let obj = {}
console.log(obj ? true: false) // true
判断这个对象是否有数据,有就返回true,否则false。但以上代码始终为true,这样我们无法去判断它是否为空。
方法一:
使用ES6的 Object.keys 方法判断 是否有 键(属性)
const obj = {}
let res = Object.keys(obj).length === 0 ? true : false
console.log(res); // true
方法二:
使用 JSON.stringify() 把对象转换为字符串格式
const obj = {}
let res = JSON.stringify(obj) === '{}' ? true : false
console.log(res); // true
方法三:
使用 for...in 进行判断
const obj = {}
// 如果有数据返回false,没有则返回true
let res = function () {
for (let key in obj) {
return false;
}
return true;
}
console.log(res()); // true