logo

Jak získat klíč v objektu JavaScript podle jeho hodnoty?

V tomto článku se naučíme, jak získat klíč v objektu JavaScriptu podle jeho hodnoty. Hodnoty objektu lze nalézt iterací přes jeho vlastnosti. U každé z těchto vlastností lze zkontrolovat, zda odpovídají zadané hodnotě.

Get-a-key-in-a-JavaScript- Object-by- its-value

Jak získat klíč v objektu JavaScriptu podle jeho hodnoty?



dopředné řetězení


Níže jsou uvedeny přístupy, pomocí kterých získáme klíč v objektu JavaScript podle jeho hodnoty:

Obsah

Metoda 1: Použití smyčky for-in

  • Hodnoty objektu lze nalézt iterací přes jeho vlastnosti.
  • U každé z těchto vlastností lze zkontrolovat, zda odpovídají zadané hodnotě. Vlastnosti objektu se získávají pomocí cyklu for na objektu.
  • Tyto vlastnosti se pak zkontrolují pomocí metody hasOwnProperty() objektu, aby se zajistilo, že jde o přímou vlastnost objektu a ne o zděděnou.
  • Každá vlastnost je poté zkontrolována, zda se shoduje s hodnotou, která má být nalezena. Pokud se hodnota shoduje, vrátí se vlastnost. To je klíč k hodnotě objektu.

Příklad: Tento příklad je implementací výše vysvětleného přístupu.



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);>

Výstup
key2>

Metoda 2: Použití metody find()

  • Metoda Object.keys() se používá k vrácení všech klíčů objektu.
  • V tomto poli klíčů se metoda find() používá k testování, zda některý z těchto klíčů odpovídá zadané hodnotě.
  • Metoda find() se používá k vrácení hodnoty prvního prvku, který vyhovuje testovací funkci.
  • Pokud se hodnota shoduje, je tato podmínka splněna a příslušný klíč je vrácen. To je klíč k hodnotě objektu.

Poznámka: Tato metoda byla přidána do specifikace ES6 a nemusí být podporována ve starších verzích prohlížečů.

Příklad: Tento příklad je implementací výše vysvětleného přístupu.

Javascript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>objekt[klíč] === hodnota); } const exampleObject = { klíč1: 'Geeks', klíč2: 100, klíč3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Výstup
key1>

Použití metody filter() a metody Object keys().

  • V této metodě získáme metody use object.keys a filter() k získání klíče v JavaScriptu podle jeho hodnoty.
  • vyfiltrujeme daný klíč a vrátíme jeho hodnotu, pokud se v objektu nachází.

Příklad: Tento příklad je implementací výše vysvětleného přístupu.



Javascript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[klíč] === hodnota); } const exampleObject = { klíč1: 'Geeks', klíč2: 100, klíč3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Výstup
[ 'key1' ]>

Použití metody Object.entries() a reduction().

  • V této metodě získáme metody use object.entries() a reduction() k získání klíče v JavaScriptu podle jeho hodnoty.
  • A vrátit hodnotu daného klíče.

Příklad: Tento příklad je implementací výše vysvětleného přístupu.

Javascript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === hodnota) { acc.push(key);  } return acc;  }, []); } const exampleObject = { klíč1: 'Geeks', klíč2: 100, klíč3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Výstup
[ 'key1' ]>

Použitím Metoda Lodash _.findKey().

  • V této metodě používáme metodu _.findkey() lodash.
  • Tím se vrátí klíč daného objektu.

Příklad: Tento příklad je implementací výše vysvětleného přístupu.

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);>

Výstup:

  seetu>

Použití metody Object.values() a indexOf().

V této metodě využijeme metodu Object.values() k extrahování všech hodnot z objektu a poté použijeme metodu indexOf() k nalezení indexu cílové hodnoty v poli hodnot. Jakmile máme index, můžeme jej použít k načtení odpovídajícího klíče z pole klíčů vrácených Object.keys().

Příklad:

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>

Výstup
city>