一、js判斷一個對象是否為空
方法一:
let obj1 = {} let obj2 = {a:1} function empty(obj){ for (let key in obj){ return false; //非空
} return true; //為空
} console.log(empty(obj1)) //true為空
console.log(empty(obj2)) //false非空
方法二:
let obj1 = {}
if(JSON.stringify(obj1) == "{}"){ console.log("空對象") }else { console.log("非空對象") }
方法三:Object.keys(obj) 返回一個給定對象自身可枚舉屬性組成的數組。
let obj1 = {}
if (Object.keys(obj1).length == 0){ console.log("空對象") }else { console.log("非空對象") }
二、js判斷對象中是否有某個屬性
方法一: . 或 [ ] 當此屬性的值為false、undefined、NaN、null、0、"" 時,此方法不適用。
if (obj2.a){ console.log("對象有此屬性") }else { console.log("對象無此屬性") }
方法二: in運算符 如果某屬性在指定對象或其原型鏈上則返回true,只需判斷自身屬性時,此方法不適用。
let obj2 = {a:1}
if ("a" in obj2){ console.log("對象或其原型鏈上有此屬性") }else { console.log("對象或其原型鏈上無此屬性") }
方法三:obj.hasOwnProperty() 對象自身屬性中含有某屬性,返回true。
let obj2 = {a:1}
if (obj2.hasOwnProperty("a")){ console.log("對象上有此屬性") }else { console.log("對象上無此屬性") }