V tomto článku sa naučíme, ako získať kľúč v objekte JavaScript podľa jeho hodnoty. Hodnoty objektu možno nájsť iteráciou cez jeho vlastnosti. Každá z týchto vlastností sa dá skontrolovať, či sa zhoduje s poskytnutou hodnotou.

Ako získať kľúč v objekte JavaScript podľa jeho hodnoty?
Nižšie sú uvedené prístupy, pomocou ktorých získame kľúč v objekte JavaScript podľa jeho hodnoty:
Obsah
- Použitie slučky for-in
- Použitie metódy hľadania ()
- Použitie metódy filter() a metódy Object keys().
- Použitie metódy Object.entries() a reduction().
- Použitie metódy Lodash _.findKey().
- Použitie metódy Object.values() a indexOf().
Metóda 1: Použitie slučky for-in
- Hodnoty objektu možno nájsť iteráciou cez jeho vlastnosti.
- Každá z týchto vlastností sa dá skontrolovať, či sa zhoduje s poskytnutou hodnotou. Vlastnosti objektu sa získajú použitím cyklu for na objekte.
- Tieto vlastnosti sa potom skontrolujú pomocou metódy hasOwnProperty() objektu, aby sa zabezpečilo, že ide o priamu vlastnosť objektu a nie o zdedenú vlastnosť.
- Každá vlastnosť sa potom skontroluje, či sa zhoduje s hodnotou, ktorá sa má nájsť. Ak sa hodnota zhoduje, vlastnosť sa vráti. Toto je kľúč k hodnote objektu.
Príklad: Tento príklad je implementáciou vyššie vysvetleného prí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ýkon
key2>
Metóda 2: Použitie metódy find()
- Metóda Object.keys() sa používa na vrátenie všetkých kľúčov objektu.
- V tomto poli kľúčov sa metóda find() používa na testovanie, či sa niektorý z týchto kľúčov zhoduje s poskytnutou hodnotou.
- Metóda find() sa používa na vrátenie hodnoty prvého prvku, ktorý vyhovuje testovacej funkcii.
- Ak sa hodnota zhoduje, táto podmienka je splnená a príslušný kľúč je vrátený. Toto je kľúč k hodnote objektu.
Poznámka: Táto metóda bola pridaná do špecifikácie ES6 a nemusí byť podporovaná v starších verziách prehliadačov.
Príklad: Tento príklad je implementáciou vyššie vysvetleného prístupu.
Javascript function getKeyByValue(object, value) { return Object.keys(object).find(key =>objekt[kľúč] === hodnota); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);> Výkon
key1>
Použitie metódy filter() a metódy Object keys().
- V tejto metóde získame metódy use object.keys a filter() na získanie kľúča v JavaScripte podľa jeho hodnoty.
- vyfiltrujeme daný kľúč a vrátime jeho hodnotu, ak sa v objekte nachádza.
Príklad: Tento príklad je implementáciou vyššie vysvetleného prístupu.
Javascript
function getKeyByValue(obj, value) { return Object.keys(obj) .filter(key =>obj[kľúč] === hodnota); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);> Výkon
[ 'key1' ]>
Použitie metódy Object.entries() a reduction().
- V tejto metóde získame metódy use object.entries() a reduction() na získanie kľúča v JavaScripte podľa jeho hodnoty.
- A vrátiť hodnotu daného kľúča.
Príklad: Tento príklad je implementáciou vyššie vysvetleného prístupu.
Javascript function getKeyByValue(obj, value) { return Object.entries(obj) .reduce((acc, [key, val]) =>{ if (val === hodnota) { acc.push(key); } return acc; }, []); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);> Výkon
[ 'key1' ]>
Použitím Metóda Lodash _.findKey().
- V tejto metóde používame metódu lodash _.findkey().
- Tým sa vráti kľúč daného objektu.
Príklad: Tento príklad je implementáciou vyššie vysvetleného prí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ýkon:
seetu>
Použitie metódy Object.values() a indexOf().
V tejto metóde využijeme metódu Object.values() na extrahovanie všetkých hodnôt z objektu a potom použijeme metódu indexOf() na nájdenie indexu cieľovej hodnoty v poli hodnôt. Keď máme index, môžeme ho použiť na získanie zodpovedajúceho kľúča z poľa kľúčov vrátených pomocou Object.keys().
Prí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ýkon
city>