logo

Com obtenir una clau en un objecte JavaScript pel seu valor?

En aquest article, aprendrem a obtenir una clau en un objecte JavaScript pel seu valor. Els valors de l'objecte es poden trobar iterant a través de les seves propietats. Cadascuna d'aquestes propietats es pot comprovar per veure si coincideixen amb el valor proporcionat.

Obteniu-una-clau-en-un-objecte-JavaScript-per-el-seu-valor

Com obtenir una clau en un objecte JavaScript pel seu valor?


A continuació es mostren els enfocaments a través dels quals obtenim una clau en un objecte JavaScript pel seu valor:



Taula de contingut

urfi javed

Mètode 1: utilitzant un bucle for-in

  • Els valors de l'objecte es poden trobar iterant a través de les seves propietats.
  • Cadascuna d'aquestes propietats es pot comprovar per veure si coincideixen amb el valor proporcionat. Les propietats de l'objecte s'obtenen utilitzant un bucle for a l'objecte.
  • A continuació, aquestes propietats es comproven amb el mètode hasOwnProperty() de l'objecte per assegurar-se que és una propietat directa de l'objecte i no una propietat heretada.
  • A continuació, es comprova cada propietat si són iguals al valor que cal trobar. Si el valor coincideix, es retorna la propietat. Aquesta és la clau del valor de l'objecte.

Exemple: Aquest exemple és la implementació de l'enfocament explicat anteriorment.

java string.format
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);>

Sortida
key2>

Mètode 2: utilitzant el mètode find()

  • El mètode Object.keys() s'utilitza per retornar totes les claus de l'objecte.
  • En aquesta matriu de claus, s'utilitza el mètode find() per provar si alguna d'aquestes claus coincideix amb el valor proporcionat.
  • El mètode find() s'utilitza per retornar el valor del primer element que compleix la funció de prova.
  • Si el valor coincideix, aquesta condició es compleix i es retorna la clau corresponent. Aquesta és la clau del valor de l'objecte.

Nota: Aquest mètode s'ha afegit a l'especificació ES6 i és possible que no sigui compatible amb versions anteriors del navegador.

Exemple: Aquest exemple és la implementació de l'enfocament explicat anteriorment.

Javascript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>objecte[clau] === valor); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue (exampleObject, 'Geeks'); console.log(ans);>>>  
Sortida
key1>

Utilitzant el mètode filter() i les claus d'objecte() mètode

  • En aquest mètode, utilitzarem els mètodes object.keys i filter() per obtenir una clau en JavaScript pel seu valor.
  • filtrarem la clau donada i retornarem el seu valor si està present a l'objecte.

Exemple: Aquest exemple és la implementació de l'enfocament explicat anteriorment.

Javascript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[clau] === valor); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue (exampleObject, 'Geeks'); console.log(ans);>>>  
Sortida

Utilitzant el mètode Object.entries() i reduce().

  • En aquest mètode, obtindrem els mètodes object.entries() i reduce() per obtenir una clau en JavaScript pel seu valor.
  • I retorna el valor de la clau donada.

Exemple: Aquest exemple és la implementació de l'enfocament explicat anteriorment.

Javascript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === valor) { acc.push(key);  } retorn acc;  }, []); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue (exampleObject, 'Geeks'); console.log(ans);>>>  
Sortida

Utilitzant Mètode Lodash _.findKey().

  • En aquest mètode estem utilitzant el mètode _.findkey() de lodash.
  • Això retorna la clau de l'objecte donat.

Exemple: Aquest exemple és la implementació de l'enfocament explicat anteriorment.

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

Sortida:

Nom de la ciutat als EUA
Utilitzant el mètode Object.values() i indexOf().

En aquest mètode, aprofitarem el mètode Object.values() per extreure tots els valors de l'objecte i després utilitzarem el mètode indexOf() per trobar l'índex del valor objectiu a la matriu de valors. Un cop tinguem l'índex, podem utilitzar-lo per recuperar la clau corresponent de la matriu de claus retornades per Object.keys().

Exemple:

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>

Sortida
city>