Given an object or an array, return if it is empty.
JSON.parse
.給定一個物件或陣列作為參數,如果那是空的則返回。
JSON.parse
的輸出結果。如果 obj
是空的(對象或數組不包含任何屬性或元素),
那麼 for...in
內部的代碼永遠不會執行,因為沒有屬性或元素可供遍歷。
在這種情況下,函數會直接執行 return true;
,表示 obj
是空的。
如果 obj
不是空的(對象或數組包含屬性或元素),
那麼 for...in
第一次迭代中會找到一個屬性或元素,
然後執行 return false;
返回 false
,表示 obj
不是空的。
因此,只要 obj
包含屬性或元素,函數就會返回 false
。
const isEmpty = function(obj) {
//for..in..處理物件/陣列元素 有元素的話返回false
//程式碼將只要物件或陣列中有任何元素,就返回 false,否則返回 true。
for (const e in obj) { return false; }
//如果物件/陣列中為空(沒有元素)的話返回true
return true;
};
// testcase1
let obj1 = {"x": 5, "y": 42}
console.log(isEmpty(obj1));
// Output: false
// testcase2
let obj2 = {}
console.log(isEmpty(obj2));
// Output: true
// testcase3
let obj3 = [null, false, 0]
console.log(isEmpty(obj3));
// Output: false