logo

JavaScript オブジェクトのキーをその値で取得するにはどうすればよいですか?

この記事では、JavaScript オブジェクトのキーをその値によって取得する方法を学びます。オブジェクトの値は、そのプロパティを反復処理することで見つけることができます。これらの各プロパティをチェックして、指定された値と一致するかどうかを確認できます。

JavaScript オブジェクト内のキーを値から取得する

JavaScript オブジェクトのキーをその値で取得するにはどうすればよいですか?


以下は、値によって JavaScript オブジェクトのキーを取得する方法です。



目次

方法 1: for-in ループを使用する

  • オブジェクトの値は、そのプロパティを反復処理することで見つけることができます。
  • これらの各プロパティをチェックして、指定された値と一致するかどうかを確認できます。オブジェクトのプロパティは、オブジェクトの for ループを使用して取得されます。
  • 次に、これらのプロパティがオブジェクトの hasOwnProperty() メソッドでチェックされ、それが継承されたプロパティではなく、オブジェクトの直接のプロパティであることが確認されます。
  • 次に、各プロパティが検索対象の値と等しいかどうかがチェックされます。値が一致すると、プロパティが返されます。これがオブジェクトの値の鍵となります。

例: この例は、上で説明したアプローチの実装です。

JavaScript
function getKeyByValue(object, value) {  for (let prop in object) {  if (object.hasOwnProperty(prop)) {  if (object[prop] === value)  return prop;  }  } } const exampleObject = {  key1: 'Geeks',  key2: 100,  key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 100); console.log(ans);>

出力
key2>

方法 2: find Method() を使用する

  • Object.keys() メソッドは、オブジェクトのすべてのキーを返すために使用されます。
  • このキーの配列では、find() メソッドを使用して、これらのキーのいずれかが指定された値と一致するかどうかをテストします。
  • find() メソッドは、テスト関数を満たす最初の要素の値を返すために使用されます。
  • 値が一致する場合、この条件は満たされ、それぞれのキーが返されます。これがオブジェクトの値の鍵となります。

注記: このメソッドは ES6 仕様に追加されたものであり、古いブラウザ バージョンではサポートされていない可能性があります。

例: この例は、上で説明したアプローチの実装です。

if ステートメント Java
JavaScript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>オブジェクト[キー] === 値); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks');コンソール.ログ(ans);>>

出力
key1>

filter() メソッドと Object Keys() メソッドの使用

  • このメソッドでは、object.keys メソッドと filter() メソッドを使用して、値によって JavaScript のキーを取得します。
  • 指定されたキーをフィルターし、オブジェクト内に存在する場合はその値を返します。

例: この例は、上で説明したアプローチの実装です。

JavaScript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[キー] === 値); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks');コンソール.ログ(ans);>>

出力
[ 'key1' ]>

Object.entries() メソッドとreduce() メソッドの使用

  • このメソッドでは、object.entries() メソッドとreduce() メソッドを使用して、値によって JavaScript のキーを取得します。
  • そして、指定されたキーの値を返します。

例: この例は、上で説明したアプローチの実装です。

JavaScript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === 値) { acc.push(key);  戻り値acc;  }、[]); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks');コンソール.ログ(ans);>>

出力
[ 'key1' ]>

使用する Lodash _.findKey() メソッド

  • このメソッドでは、lodash の _.findkey() メソッドを使用しています。
  • これは、指定されたオブジェクトのキーを返します。

例: この例は、上で説明したアプローチの実装です。

JavaScript
// Requiring the lodash library  const _ = require('lodash'); // Original array  let users = {  'meetu': { 'salary': 36000, 'active': true },  'teetu': { 'salary': 40000, 'active': false },  'seetu': { 'salary': 10000, 'active': true } }; // Using the _.findKey() method // The `_.matches` iteratee shorthand let found_elem = _.findKey(users, {  'salary': 10000,  'active': true }); // Printing the output  console.log(found_elem);>

出力:

配列のソートJava
  seetu>

Object.values() メソッドとindexOf() メソッドの使用

このメソッドでは、Object.values() メソッドを利用してオブジェクトからすべての値を抽出し、次に、indexOf() メソッドを使用して値の配列内のターゲット値のインデックスを見つけます。インデックスを取得したら、それを使用して、Object.keys() によって返されたキーの配列から対応するキーを取得できます。

例:

JavaScript
function getKeyByValue(object, value) {  // Get array of object values  const values = Object.values(object);    // Find the index of the target value  const index = values.indexOf(value);    // If the value is found  if (index !== -1) {  // Get array of object keys  const keys = Object.keys(object);  // Return the key at the same index  return keys[index];  }  // If value is not found, return null or handle accordingly  return null; } // Example object let obj = {  name: 'Alice',  age: 25,  city: 'London' }; // Get the key for the value 'London' console.log(getKeyByValue(obj, 'London')); // Output: city>

出力
city>