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