[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
2022-03-16 10:53:23
質問
JavaScriptのオブジェクトや配列に特定のキーが存在するかどうかを確認するにはどうすればよいですか?
キーが存在しない場合、そのキーにアクセスしようとすると、falseを返すのでしょうか?あるいはエラーを投げるのでしょうか?
どのように解決するのですか?
未定義かどうかをチェックすることは、キーが存在するかどうかをテストする正確な方法ではありません。もしキーが存在しても、その値が実際には
undefined
?
var obj = { key: undefined };
console.log(obj["key"] !== undefined); // false, but the key exists!
代わりに
in
演算子を使用します。
var obj = { key: undefined };
console.log("key" in obj); // true, regardless of the actual value
キーが存在しないかどうかを確認したい場合は、括弧を使用することを忘れないでください。
var obj = { not_key: undefined };
console.log(!("key" in obj)); // true if "key" doesn't exist in object
console.log(!"key" in obj); // Do not do this! It is equivalent to "false in obj"
また、オブジェクトのインスタンスのプロパティ (継承されたプロパティではない) を特にテストしたい場合は、次のようにします。
hasOwnProperty
:
var obj = { key: undefined };
console.log(obj.hasOwnProperty("key")); // true
というメソッドの性能比較のために
in
,
hasOwnProperty
で、キーは
undefined
を参照してください。
これ
ベンチマーク
:
関連
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み】awaitは非同期関数でのみ有効です。
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトの配列からidでオブジェクトを検索する
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
WeChatアプレット用ユニアプリによるグローバルシェアリング
-
Vueにシンプルなメモ帳機能を実装
-
vueが定義するプライベートフィルタと基本的な使い方
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み] 期待される代入または関数呼び出し: 未使用式なし ReactJS
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"