LeetCode 2727. Is Object Empty | JavaScript

更新 發佈閱讀 6 分鐘

Problem

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.

 

Example 1:

Input: obj = {"x": 5, "y": 42}
Output: false
Explanation: The object has 2 key-value pairs so it is not empty.

Example 2:

Input: obj = {}
Output: true
Explanation: The object doesn't have any key-value pairs so it is empty.

Example 3:

Input: obj = [null, false, 0]
Output: false
Explanation: The array has 3 elements so it is not empty.

 

Constraints:

  • obj is a valid JSON object or array
  • 2 <= JSON.stringify(obj).length <= 105



Starter

/**
 * @param {Object|Array} obj
 * @return {boolean}
 */

var isEmpty = function(obj) {
   
};



Solution

1. 物件與陣列

在 JavaScript 中,所有基本型別 (Primitives) 以外的值都是物件[1]

陣列為高階(high-level)、似列表(list-like)的物件[2]

  • 物件:一個物體,由鍵與值構成與描述[3]

「屬性(Property)」是物件的組成單位,每個屬性都包含兩個部分:

1. 鍵(key):名稱,用來識別這個屬性。

2. 值(value):該屬性所儲存的資料。

  • 陣列:一個清單,由元素和索引構成[3]

陣列的內部結構

陣列實際上是這樣的物件結構:

const arr = ['A', 'B', 'C', 'D'];

// 陣列內部類似於:
// {
// '0': 'A',
// '1': 'B',
// '2': 'C',
// '3': 'D',
// length: 4
// }
// 陣列的索引 (0, 1, 2...) 實際上就是物件的屬性名稱

console.log(arr[0]); // 'A'
console.log(arr['0']); // 'A' (用字串索引也可以)


2. Object.keys()

語法

Object.keys(obj)
  • 參數:obj - 回傳其可列舉屬性的物件。
  • 回傳值:回傳一個包含物件內所有可列舉屬性的字串陣列


基本使用範例

用於物件:

Object.keys({})              // []
Object.keys({ a: 1, b: 2 }) // ["a", "b"]

用於陣列:

Object.keys([])            // []
Object.keys([1, 2, 3]) // ["0", "1", "2"] // 返回索引值(字串形式)
Object.keys(['a', , 'c']) // ["0", "2"] // 跳過空位

也就是說:

  • 空物件 {}Object.keys() 的函式回傳值是空陣列 []
  • 空陣列 []Object.keys() 的函式回傳值也是空陣列 []


3. .length

基本概念

陣列(Array)才有 .length 屬性,用於表示陣列的長度,其值為最大數字索引 + 1

const arr = ['a', 'b', 'c'];
console.log(arr.length); // 3



Code

/**
 * @param {Object|Array} obj
 * @return {boolean}
 */

var isEmpty = function(obj) {
    return Object.keys(obj).length === 0;
};



References

[1] 重新認識 JavaScript: Day 04 物件、陣列以及型別判斷

[2] MDN Web Docs - Array

[3] 六角學院 - 物件與陣列設計


喜歡我的文章,拍五下~

留言
avatar-img
Chieh 的沙龍
0會員
3內容數
🌱 Currently learning front-end
你可能也想看
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
if 條件式
Thumbnail
if 條件式
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
Ae 小技巧:Null Object 控制物體旋轉 動態後記系列會記錄一些我在製作中的記錄,可能是分解動畫、小技巧、發想、腳本......等等。 每篇都是小短篇,就是補充用的小筆記,沒有前後順序,可跳著閱讀。
Thumbnail
Ae 小技巧:Null Object 控制物體旋轉 動態後記系列會記錄一些我在製作中的記錄,可能是分解動畫、小技巧、發想、腳本......等等。 每篇都是小短篇,就是補充用的小筆記,沒有前後順序,可跳著閱讀。
Thumbnail
可選串聯(?.)運算符用於訪問 object 的屬性或調用函數。如果使用該運算符訪問的object 或調用的函式為 undefined 或 null,則表達式會回傳 undefined,而不是拋出錯誤。
Thumbnail
可選串聯(?.)運算符用於訪問 object 的屬性或調用函數。如果使用該運算符訪問的object 或調用的函式為 undefined 或 null,則表達式會回傳 undefined,而不是拋出錯誤。
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目會給定我們一個整數陣列nums,要求我們把裡面的0做元素交換,把0都搬到陣列的右邊。題目要求必須in-place在原本的陣列裡面做操作,不可以額外建立新的陣列。 題目的原文敘述 測試範例 Example 1: Input: nums = [0,1,0,3,12] Outpu
Thumbnail
題目敘述 題目會給定我們一個整數陣列nums,要求我們把裡面的0做元素交換,把0都搬到陣列的右邊。題目要求必須in-place在原本的陣列裡面做操作,不可以額外建立新的陣列。 題目的原文敘述 測試範例 Example 1: Input: nums = [0,1,0,3,12] Outpu
Thumbnail
題目敘述 題目會給定一個整數陣列arr,要求我們判斷是否每個元素的出現次數都不同? 題目的原文敘述 測試範例 Example 1: Input: arr = [1,2,2,1,1,3] Output: true Explanation: The value 1 has 3 occurre
Thumbnail
題目敘述 題目會給定一個整數陣列arr,要求我們判斷是否每個元素的出現次數都不同? 題目的原文敘述 測試範例 Example 1: Input: arr = [1,2,2,1,1,3] Output: true Explanation: The value 1 has 3 occurre
Thumbnail
題目 : 27. Remove Element
Thumbnail
題目 : 27. Remove Element
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News