/**
* 判斷js數組/對象是否為空
* isPrototypeOf() 驗證一個對象是否存在於另一個對象的原型鏈上。即判斷 Object 是否存在於 $obj 的原型鏈上。js中一切皆對象,也就是說,Object 也存在於數組的原型鏈上,因此這里數組需要先於對象檢驗。
* Object.keys() 返回一個由給定對象的自身可枚舉屬性組成的數組,數組中屬性名的排列順序和使用 for...in 循環遍歷該對象時返回的順序一致
* @param $obj
* @return {boolean}
*/
function isEmpty($obj) {
// 檢驗非數組/對象類型 EX:undefined null '' 根據自身要求添加其他適合的為空的值 如:0 ,'0',' ' 等
if (!$obj && $obj !== 0 && $obj !== '') return true;
if (typeof $obj === "string") {
$obj = $obj.replace(/\s*/g, "");//移除字符串中所有 ''
if ($obj === '') return true;
}
return (Array.isArray($obj) && $obj.length === 0) || (Object.prototype.isPrototypeOf($obj) && Object.keys($obj).length === 0);
}