「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > [Leetcode] オブジェクトは空です

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

2024 年 11 月 4 日に公開
ブラウズ:857

[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 を返します。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/luvsense/leetcode-2727-is-object-empty-5h8k?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3