如何判断一个对象是否为空
1、利用 Object.keys
方法 该方法会返回当前对象内所有返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable
)属性的键名。详情 Object.keys
;
如果数组的长度不为空那么则说明对象不为空
使用方法如下:
1 2 3 4 5 6 7 8
| const obj = { name: '张三', age: 18, sex: '男' }; let arr = Object.keys(obj);
if(arr.length){ return false; } else { return true; }
|
抽成方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function checkObj(obj){ if (typeof obj != 'object') thorw new Error('参数不是一个可遍历对象'); let _arr = Object.keys(obj); return !!_arr.length; } var obj = {}; checkObj(obj)
obj = { name: '张三' } checkObj(obj)
obj = []; checkObj(obj)
obj = [1]; checkObj(obj);
obj = function(){}; checkObj(obj)
|
2、使用for...in
循环,如果对象可循环那么不为空,否则为空对象 ;前提:对象属性是可遍历:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function checkObj(obj){ for(let item in obj){ return true; } return false; } var obj = {}; checkObj(obj) obj = {name:'张三'} checkObj(obj); obj = []; checkObj(obj); obj = [1]; checkObj(obj); obj = function(){} checkObj(obj)
|