ホームページ  >  記事  >  ウェブフロントエンド  >  [Leetcode] オブジェクトは空です

[Leetcode] オブジェクトは空です

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-02 22:31:30790ブラウズ

[Leetcode] Is Object Empty

質問リンク: https://leetcode.com/problems/is-object-empty/description/

[問題文]

オブジェクトまたは配列を指定すると、それが空の場合に戻ります。

  • 空のオブジェクトにはキーと値のペアが含まれません。
  • 空の配列には要素が含まれません。

オブジェクトまたは配列は JSON.parse の出力であると想定できます。

[質問の理解]

  1. すごい...obj という関数のパラメータとして配列またはオブジェクトを取得しています。 (はい、とてもクリエイティブな名前ですね。でも、後で意味が分かります!)

  2. 私たちの任務?いくつかのマジック コーディング トリックを実行して、最初にこの obj が配列なのかオブジェクトなのかを判断します。そして、その知識に基づいて、次に何をすべきかを決定します。

  3. 最後に、このオブジェクト/配列が空かどうかを確認する必要があります。シンプルですよね? (それとも…)

【ポイント】

  1. まず最初に: 「配列は技術的には JavaScript のオブジェクトです。」そうだ!そうです、配列は JS における特別なタイプのオブジェクトです。したがって、混同しないでください。

  2. オブジェクト検出 101: typeof obj === 'object' && obj !== null を使用して、パラメーターが実際にオブジェクト (または配列) であるかどうかを確認できます。なぜ !== null 部分があるのでしょうか?そうですね、null は JS の特殊なケースだからです。厳密にはオブジェクト型ですが、何もない空虚のようなものです。したがって、念のためこれを除外します (問題で明示的に言及されていないとしても、これは良い習慣です)。

  3. 未定義および null 要素: オブジェクトと配列の両方に、未定義または null のプロパティ/要素を持つことができます。ただし、心配する必要はありません。長さをチェックするときにもカウントされます。私たちの検証では無料パスを取得できません!

  4. 配列ですか?: Array.isArray(obj) を使用して、パラメーターが配列であるかどうかを確認できます。ただし、それがオブジェクトであるかどうかを再度確認する必要はありません。すでに以前に確認しました。

[ソリューションコード]

var isEmpty = function (obj) {
  if (typeof obj === "object" && obj !== null) { // Check if it's an object and not null
    if (Array.isArray(obj)) { // If it's an array
      return obj.length === 0; // Return true if it's empty
    } else { // If it's an object
      return Object.keys(obj).length === 0; // Return true if there are no keys
    }
  }
  return false; // If it's neither an object nor an array, return false
};

[それを打ち破る…さらに先へ]

ステップ 1: オブジェクトかどうかを確認します
まず、typeof obj === 'object' && obj !== null を使用して、入力が null ではなくオブジェクトであることを確認します。 (typeof null === 'object が JavaScript の奇妙な癖の 1 つであることは誰もが知っているからです。ありがとう、JavaScript!)

ステップ 2: それは配列ですか?
Array.isArray(obj) を使用して、配列と通常のオブジェクトを区別します。配列には長さのプロパティがあるため、obj.length === 0.

かどうかを直接確認できます。

ステップ 3: それはオブジェクトですか?
配列でない場合は、Object.keys(obj).length === 0 を使用してオブジェクトかどうかを確認します。このメソッドは、オブジェクト内のキーの数を返します。鍵がないのですか?空いてます!

ステップ 4: デフォルトのケース
入力がオブジェクトではない (または null) 場合、質問ではオブジェクトまたは配列のみを扱うことが指定されているため、false を返します。

以上が[Leetcode] オブジェクトは空ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。