js判断对象、数组是否为空
做项目时想要根据判断对象是否为空,然后执行不同的操作,下面就整理下如何实现,针对数组和对象的通用方法。
方法一:isPrototypeOf()和length判断
function isEmpty(obj) {
if(!obj && obj !== 0 && obj !== '') {
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;
}
var arr=[];
var obj={};
isEmpty(arr);//返回true
isEmpty(obj);//返回trueisPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上。
方法二:hasOwnProperty
hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性。
function isEmpty(arr){
for(var key in arr) {
if(obj.hasOwnProperty(key)) {
return false;
}
}
return true;
}
var arr=[];
var obj={};
isEmpty(arr);//返回true
isEmpty(obj);//返回true方法三:利用JSON.stringify()方法
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
function isEmpty(obj) {
if(JSON.stringify(obj) === '{}' || JSON.stringify(obj) === '[]'){
return true;
}
return false;
}
var arr=[];
var obj={};
isEmpty(arr);//返回true
isEmpty(obj);//返回true本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!