js 判断空数组,空对象!

var attr1 = [ ];
var obj1 = { };
console.log(isEmpty(attr1));
console.log(isEmpty(obj1));
function isEmpty(obj) {
if (!obj && obj !== 0 && obj !== '') { // 检验 undefined 和 null
          
return true;
}
if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {    
return true;  
}



if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {    
return true;  
}  
return false;
}
console.log(JSON.stringify(obj1) === '{}');
console.log(JSON.stringify(attr1) === '[]');
 

isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上。即判断 Object 是否存在于 obj 的原型链上。需要注意的是,js 中一切皆是对象,也就是说,Object 也存在于数组的原型链上,因此这里数组需要先于对象检验。该方法属于 ES3 标准,现代浏览器均支持,包括 IE.

Object.keys() 方法会返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致、

https://www.tongbiao.xyz/
原文地址:https://www.cnblogs.com/tongbiao/p/8261042.html