ホームページ > 記事 > ウェブフロントエンド > [Leetcode] オブジェクトは空です
質問リンク: https://leetcode.com/problems/is-object-empty/description/
オブジェクトまたは配列を指定すると、それが空の場合に戻ります。
オブジェクトまたは配列は JSON.parse の出力であると想定できます。
すごい...obj という関数のパラメータとして配列またはオブジェクトを取得しています。 (はい、とてもクリエイティブな名前ですね。でも、後で意味が分かります!)
私たちの任務?いくつかのマジック コーディング トリックを実行して、最初にこの obj が配列なのかオブジェクトなのかを判断します。そして、その知識に基づいて、次に何をすべきかを決定します。
最後に、このオブジェクト/配列が空かどうかを確認する必要があります。シンプルですよね? (それとも…)
まず最初に: 「配列は技術的には JavaScript のオブジェクトです。」そうだ!そうです、配列は JS における特別なタイプのオブジェクトです。したがって、混同しないでください。
オブジェクト検出 101: typeof obj === 'object' && obj !== null を使用して、パラメーターが実際にオブジェクト (または配列) であるかどうかを確認できます。なぜ !== null 部分があるのでしょうか?そうですね、null は JS の特殊なケースだからです。厳密にはオブジェクト型ですが、何もない空虚のようなものです。したがって、念のためこれを除外します (問題で明示的に言及されていないとしても、これは良い習慣です)。
未定義および null 要素: オブジェクトと配列の両方に、未定義または null のプロパティ/要素を持つことができます。ただし、心配する必要はありません。長さをチェックするときにもカウントされます。私たちの検証では無料パスを取得できません!
配列ですか?: 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 サイトの他の関連記事を参照してください。