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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...
