logo

Ako získať kľúč v objekte JavaScript podľa jeho hodnoty?

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.

Získajte kľúč v objekte v jazyku JavaScript podľa jeho hodnoty

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

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>