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ě.

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
- Použití smyčky for-in
- Použití metody find()
- Použití metody filter() a metody Object keys().
- Použití metody Object.entries() a reduction().
- Použití metody Lodash _.findKey().
- Použití metody Object.values() a indexOf().
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>