发布网友 发布时间:2022-04-24 12:43
共3个回答
热心网友 时间:2022-05-07 10:57
if(Array.prototype.isPrototypeOf(obj)&&obj.length === 0) //true if obj is array;
simpler way:
if (Array.isArray(arr) && arr.length) // arr exists and is not empty
热心网友 时间:2022-05-07 12:15
if(typeof a=='object'&&a.length==0)
return true;
热心网友 时间:2022-05-07 13:50
当需要判断参数是否为空时,总希望 js 能够提供原生的判断方法,可惜并没有,只能自己封装了。
function isEmpty(obj) {
// 检验 undefined 和 null
if(!obj && obj !== 0 && obj !== '') {<br> return true;
}
if(Array.prototype.isPrototypeOf(obj) && obj.length === 0) { <br> return true;<br> }
if(Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) { <br> return true; <br> } <br> return false; <br>}
isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上。即判断 Object 是否存在于 obj 的原型链上。需要注意的是,js 中一切皆是对象,也就是说,Object 也存在于数组的原型链上,因此这里数组需要先于对象检验。
ps:
isPrototypeOf 和 instanceof operator 是不一样的。在表达式 object instanceof AFunction 中,检测的是 AFunction.prototype 是否在object 的原型链中,而不是检测 AFunction 自身。