ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptでオブジェクトが空であるかどうかを確認する方法

JavaScriptでオブジェクトが空であるかどうかを確認する方法

Christopher Nolan
リリース: 2025-03-15 09:11:08
オリジナル
699 人が閲覧しました

JavaScriptでオブジェクトが空であるかどうかを確認する方法

この記事では、JavaScriptでオブジェクトが空であるかどうかを確認する方法をすばやく説明します。

毎日のJavaScript開発では、オブジェクトが空であるかどうかを確認する必要がある場合があります。これを行ったことがあるなら、おそらく単一の直接的な解決策がないことを知っています。ただし、さまざまな手法を使用して、独自のユースケースに合ったカスタムソリューションを作成できます。さらに、プロジェクトでJavaScriptユーティリティライブラリを使用している場合、ライブラリはすでにオブジェクトが空であるかどうかを確認するための組み込みの方法を提供する場合があります。

最新の方法(ES5)

このセクションでは、ES5バージョンをサポートする最新のブラウザで使用できるさまざまな方法について説明します。

Object.keys()メソッドは、指定されたオブジェクトの列挙属性名の配列を返します。したがって、この配列の長さを計算することにより、オブジェクトにプロパティがあるかどうかを確認できます。

次の例を見てみましょう。

関数isemptyObject(obj){
    return object.keys(obj).length === 0;
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(object.keys(bar).length);
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

上記の例に示すように、 foo属性が添付されているため、 isEmptyObject関数は異なる値でisEmptyObject関数を返します。

isEmptyObjectがregexpオブジェクトのtrueを返すことに注意してください。

 console.log(isemptyobject(date.now()); // output:true
console.log(isemptyObject(new regexp()); // output:true
ログイン後にコピー
ログイン後にコピー

また、この方法は未定義の値で呼び出されるため、注意してください。それらは例外を引き起こす可能性があります。その後、空の入力で失敗しない防弾ソリューションを作成します。

 console.log(isemptyObject(null));
ログイン後にコピー

Object.getOwnPropertyNames()メソッドは、指定されたオブジェクトのすべてのプロパティの配列を返します。 Object.keys()メソッドと同じように見える場合がありますが、 Object.getOwnPropertyNames()メソッドは、非変更不可能なプロパティも考慮しますが、 Object.keys()は、宣言されていないいくつかのプロパティを逃します。

次の例を見てみましょう。

関数isemptyObject(obj){
    return object.getownPropertYnames(obj).length === 0;
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(object.getownpropertynames(bar).length);
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

ご覧のとおり、 Object.keys()を使用して、null値をテストします。

ただし、エッジケースはわずかに異なります - Dateですが、 nullまたはJSON.stringifyの場合はfalseが返されます。

{}を使用して、指定されたオブジェクトが空であるかどうかを確認します。

次の例を見てみましょう。

関数isemptyObject(obj){
    return json.stringify(obj)=== '{}';
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(json.stringify(bar)); // output:{"foo": "1"}
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

繰り返しますが、エッジの状況はわずかに異なります。 "1651283138454"はregexpで使用されます。したがって、 Object.getOwnPropertyNamesメソッドを使用してください!

 console.log(isemptyobject(date.now()); // output:false
console.log(isemptyObject(new regexp()); // output:true
ログイン後にコピー

別の変化はfalseですが、それはあなたが期待するものではないかもしれません。

 console.log(isemptyobject(null)); // output:false
ログイン後にコピー

Object.entries()メソッドの配列を返し、各要素はオブジェクトプロパティのキー価値ペアの配列です。

次の例を見て、それが正確にどのように機能するかを理解しましょう。

関数isemptyObject(obj){
    return object.entries(obj).length === 0;
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(object.entries(bar)); // output:['foo'、 '1']]
console.log(object.entries(bar).length);
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

ご覧のとおり、 Object.keys()メソッドは、Regexp Object Edge Caseの例で同じ結果を示します。未定義の入力の場合、例外もスローします。

 console.log(isemptyobject(date.now()); // output:true
console.log(isemptyObject(new regexp()); // output:true
ログイン後にコピー
ログイン後にコピー

防弾ソリューション

上記の単純な解決策の1つの問題は、特別なオブジェクト(日付など)、未定義の値、またはプリミティブ(整数など)のエッジケースの一貫性のない結果を与えることです。これは、シンプルだが信頼性の高いソリューションです。

関数isemptyObject(value){
  const type = typeof値
  const isobject = value!= null && type === 'object'
  return isobject && object.keys(value).length === 0;
}
ログイン後にコピー

この方法は、その名前で正確に実行されます。入力値がオブジェクトと空のオブジェクトの両方である場合にのみ、 trueを返します。 nullおよびundefined値で動作します - オブジェクトではないためfalseを返します。 Regexpのような特別なオブジェクトの場合、特別なキーを定義しないためtrueが返されます。また、空のアレイにはtrue 、非空白アレイの場合はfalse返されます。

ES5以前の計画

このセクションでは、古いブラウザでも機能するソリューションについて説明します。この方法は、オブジェクトが空であるかどうかを確認する組み込みの方法が組み込まれていない場合、JavaScript ES5 ERAの前によく使用されました。

次の例を見てみましょう。

関数isemptyObject(obj){
    for(objのvarプロパティ){
        if(obj.hasownproperty(プロパティ)){
            falseを返します。
        }
    }

    trueを返します。
}

console.log(isemptyObject({})); // output:true
console.log(isemptyObject({"foo": "1"}); // output:false
ログイン後にコピー

上記の例では、オブジェクトが空であるかどうかを確認するために呼び出すことができるカスタム関数を構築しました。パラメーターを受け入れ、テストするにはオブジェクトを渡す必要があります。 FALSEでは、それ以外の場合は、 isEmptyObject関数を異なる値で返します。上記の例に示すように、それを異なる値で呼び出し、 isEmptyObjectメソッドを使用して出力を記録します。これにより、オブジェクトが空であるかどうかを確認できます。

以下の例を簡単に見てみましょう。

 jquery.isemptyObject({});
jquery.isemptyObject({"foo": "1"});
ログイン後にコピー

ご覧のとおり、 _.isEmpty()を使用することは非常に簡単です。

結論は

この記事では、JavaScriptでオブジェクトが空であるかどうかを確認するいくつかの異なる方法について説明します。 JavaScriptプログラミングに関する他のチュートリアルをご覧ください!

この投稿は、ニーマムガンガの貢献で更新されました。

以上がJavaScriptでオブジェクトが空であるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート