JavaScript では、JSON (JavaScript Object Notation) オブジェクトを操作するのが一般的であり、多くの場合、オブジェクト内に特定のキーが存在するかどうかを確認する必要があります。この記事では、このタスクを効率的に実行するためのさまざまな方法について説明します。
文字列比較のためのCプログラム
JSON オブジェクトは、キーと値のペアによって特徴付けられ、データの保存と送信に使用される多用途のデータ構造です。ただし、そのようなオブジェクト内に特定のキーが存在するかどうかを判断することは、条件付き操作を実行したり、ネストされたデータにアクセスしたりするために重要です。
JSON オブジェクト内にキーが存在するかどうかを確認するメソッドは次のとおりです。
目次
- JavaScript の hasOwnProperty() メソッド
- 演算子での使用
- Reflect.ownKeys() および include() メソッドの使用
- Object.getOwnPropertySymbols() および include() メソッドの使用
- Object.getOwnPropertyNames() および include() メソッドの使用
- Object.keys() および include() メソッドの使用
1. JavaScript hasOwnProperty() メソッド
JavaScript の hasOwnProperty() メソッド オブジェクトが定義されたプロパティを (継承するのではなく) 独自のプロパティとして持つかどうかを示すブール値を返します。
構文:
obj.hasOwnProperty(prop);>
パラメーター:
- 小道具: このパラメータは必須です。チェックするプロパティの文字列名またはシンボルを指定します。
戻り値:
オブジェクトが指定されたプロパティを独自のプロパティとして持っているかどうかを示すブール値を返します。
例 1: この例では以下をチェックします 小道具_1 の オブジェクト を使用して hasOwnProperty プロパティ 。
JavaScript let obj = { prop_1: 'val_1', prop_2: 'val_2', prop_3: 'val_3', prop_4: 'val_4', }; function gfg_Run() { ans = ''; let prop = 'prop_1'; if (obj.hasOwnProperty(prop)) { ans = 'let 'obj' has ' + prop + ' property'; } else { ans = 'let 'obj' has not ' + prop + ' property'; } console.log(ans); } gfg_Run()>
出力
let 'obj' has prop_1 property>
例 2: この例では以下をチェックします プロ_1 の オブジェクト 単純な配列アクセスによる。
JavaScript
let obj = { prop_1: 'val_1', prop_2: 'val_2', prop_3: 'val_3', prop_4: 'val_4', }; function gfg_Run() { ans = ''; let prop = 'pro_1'; if (obj[prop]) { ans = 'let 'obj' has ' + prop + ' property'; } else { ans = 'let 'obj' has not ' + prop + ' property'; } console.log(ans); } gfg_Run()>
出力
let 'obj' has not pro_1 property>
使用するin>
オペレーター
JavaScript in>
オペレーター は、特定のプロパティがオブジェクトに存在するかどうかを確認するために使用される組み込み演算子です。ブール値を返します 真実 指定されたプロパティがオブジェクト内にある場合は、それ以外の場合は戻ります。 間違い 。
構文:
prop in object>
パラメーター:
- 小道具 : このパラメーターは、プロパティ名または配列インデックスを表す文字列または記号を保持します。
- 物体: このパラメータは、含まれているかどうかをチェックするオブジェクトです。 小道具。
戻り値:
このメソッドはブール値を返します。値 真実 返される 指定されたプロパティが 見つかった オブジェクト内にある場合、それ以外の場合は false を返します。
例: この例では、in>
オペレーター。
// Example JSON object let jsonObject = { name: 'John', age: 25, city: 'New York' }; // Check if 'age' key exists in jsonObject if ('age' in jsonObject) { console.log('The key 'age' exists in the JSON object.'); } else { console.log('The key 'age' does not exist in the JSON object.'); }>
出力
The key 'age' exists in the JSON object.>
使用するReflect.ownKeys()>
そしてincludes()>
方法
ジャスクリプト Reflect.ownKeys()>
Javascript のメソッドは、ターゲット オブジェクト独自のプロパティ キーの配列を返すために使用され、継承されたプロパティは無視されます。
構文:
Reflect.ownKeys( obj );>
パラメーター:
- オブジェクト: このパラメータはターゲット オブジェクトを保持し、独自のキーを取得するために使用されます。
戻り値:
- このメソッドは常に、ターゲット オブジェクト自身のプロパティ キーの配列を返します。
例: この例では使用しています Reflect.ownKeys()>
そしてincludes()>
方法。
const jsonObject = { key1: 'value1', key2: 'value2', key3: 'value3' }; const keyToCheck = 'key2'; if (Reflect.ownKeys(jsonObject).includes(keyToCheck)) { console.log(`${keyToCheck} exists in the JSON object.`); } else { console.log(`${keyToCheck} does not exist in the JSON object.`); }>
出力
key2 exists in the JSON object.>
使用する Object.getOwnPropertySymbols()>
そして includes()>
方法
の Object.getOwnPropertySymbols()>
方法 JavaScript の は、指定されたオブジェクトに存在するすべてのシンボル プロパティの配列を返す標準の組み込みオブジェクトです。オブジェクトにシンボル プロパティが設定されるまで、空の配列が返されます。
構文:
Object.getOwnPropertySymbols(obj);>
パラメーター:
- オブジェクト: このパラメータは、シンボル プロパティが返されるオブジェクトです。
戻り値:
- このメソッドは、指定されたオブジェクト内で直接見つかったプロパティに対応するすべてのシンボル プロパティの配列を返します。
例: この例では、私たちはあなたです 歌う Object.getOwnPropertySymbols()>
そして includes()>
方法
const jsonObject = { [Symbol('key1')]: 'value1', [Symbol('key2')]: 'value2', [Symbol('key3')]: 'value3' }; const keyToCheck = Symbol('key2'); if (Object.getOwnPropertySymbols(jsonObject).includes(keyToCheck)) { console.log(`${keyToCheck.toString()} exists in the JSON object.`); } else { console.log(`${keyToCheck.toString()} does not exist in the JSON object.`); }>
出力
Symbol(key2) does not exist in the JSON object.>
使用する Object.getOwnPropertyNames()>
そして includes()>
方法
の Object.getOwnPropertyNames()>
方法 JavaScript の は、シンボルベースの列挙不可能なプロパティを除く、指定されたオブジェクトに存在するすべてのプロパティを返す標準の組み込みオブジェクトです。
構文:
Object.getOwnPropertyNames(obj);>
パラメーター:
このメソッドは、上で説明し、以下で説明するように、単一のパラメーターを受け入れます。
- オブジェクト: このパラメータは、列挙可能および列挙不可能なプロパティが返されるオブジェクトを保持します。
戻り値:
- このメソッドは、指定されたオブジェクト内で直接見つかったプロパティに対応する文字列の配列を返します。
例: この例では、Object.getOwnPropertyNames() メソッドと include() メソッドを使用しています。
JavaScript const jsonObject = { key1: 'value1', key2: 'value2', key3: 'value3' }; const keyToCheck = 'key2'; if (Object.getOwnPropertyNames(jsonObject).includes(keyToCheck)) { console.log(`${keyToCheck} exists in the JSON object.`); } else { console.log(`${keyToCheck} does not exist in the JSON object.`); }>
出力
key2 exists in the JSON object.>
使用する Object.keys()>
そして includes()>
方法
の Object.keys()>
方法 JavaScript では、オブジェクトの列挙可能なプロパティ名の配列を取得するために使用されます。オブジェクトのキーを含む配列を返します。
構文:
Object.keys(obj);>
パラメータ:
- オブジェクト : 列挙可能なプロパティが返されるオブジェクトです。
戻り値:
- 指定されたオブジェクトの列挙可能なすべてのプロパティを表す文字列の配列を返します。
例: この例では、Object.keys() メソッドと include() メソッドを使用しています。
JavaScript const jsonObject = { key1: 'value1', key2: 'value2', key3: 'value3' }; const keyToCheck = 'key2'; if (Object.keys(jsonObject).includes(keyToCheck)) { console.log(`${keyToCheck} exists in the JSON object.`); } else { console.log(`${keyToCheck} does not exist in the JSON object.`); }>
出力
key2 exists in the JSON object.>