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