iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
Software Development

LeetCode-30 Days of JavaScript系列 第 20

LeetCode JS30-Day20 | 2727. Is Object Empty 判斷物件是否為空

  • 分享至 

  • xImage
  •  

LeetCode JS30-Day20 | 2727. Is Object Empty 判斷物件是否為空

Description❓

Given an object or an array, return if it is empty.

  • An empty object contains no key-value pairs.
  • An empty array contains no elements.
    You may assume the object or array is the output of JSON.parse.

給定一個物件或陣列作為參數,如果那是空的則返回。

  • 空物件不包含鍵值對。
  • 空陣列不包含任何元素。
    您可以假設物件或陣列是JSON.parse的輸出結果。

Points

Solution✍️

[ ▶️挑戰這一題 ][ 本日代碼 ]

  • 如果 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; 
};

Testcase

// 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

上一篇
LeetCode JS30-Day19 | 2721. Execute Asynchronous Functions in Parallel 平行執行非同步函數
下一篇
LeetCode JS30-Day21 | 2677. Chunk Array 分塊陣列
系列文
LeetCode-30 Days of JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言