logo

Come ottenere una chiave in un oggetto JavaScript in base al suo valore?

In questo articolo impareremo come ottenere una chiave in un oggetto JavaScript in base al suo valore. I valori dell'oggetto possono essere trovati scorrendo le sue proprietà. Ognuna di queste proprietà può essere controllata per vedere se corrisponde al valore fornito.

Ottieni una chiave in un oggetto JavaScript in base al suo valore

Come ottenere una chiave in un oggetto JavaScript in base al suo valore?



elenca Java nell'array


Di seguito sono riportati gli approcci attraverso i quali otteniamo una chiave in un oggetto JavaScript in base al suo valore:

Tabella dei contenuti

Metodo 1: utilizzo di un ciclo for-in

  • I valori dell'oggetto possono essere trovati scorrendo le sue proprietà.
  • Ognuna di queste proprietà può essere controllata per vedere se corrisponde al valore fornito. Le proprietà dell'oggetto si ottengono utilizzando un ciclo for sull'oggetto.
  • Queste proprietà vengono quindi controllate con il metodo hasOwnProperty() dell'oggetto per assicurarsi che sia una proprietà diretta dell'oggetto e non una proprietà ereditata.
  • Ciascuna proprietà viene quindi verificata se è uguale al valore da trovare. Se il valore corrisponde, viene restituita la proprietà. Questa è la chiave del valore dell'oggetto.

Esempio: Questo esempio è l'implementazione dell'approccio sopra spiegato.



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

Produzione
key2>

Metodo 2: utilizzo del metodo find()

  • Il metodo Object.keys() viene utilizzato per restituire tutte le chiavi dell'oggetto.
  • Su questo array di chiavi, il metodo find() viene utilizzato per verificare se qualcuna di queste chiavi corrisponde al valore fornito.
  • Il metodo find() viene utilizzato per restituire il valore del primo elemento che soddisfa la funzione di test.
  • Se il valore corrisponde, questa condizione è soddisfatta e viene restituita la rispettiva chiave. Questa è la chiave del valore dell'oggetto.

Nota: Questo metodo è stato aggiunto alla specifica ES6 e potrebbe non essere supportato nelle versioni precedenti del browser.

Esempio: Questo esempio è l'implementazione dell'approccio sopra spiegato.

Javascript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>oggetto[chiave] === valore); } const esempioOggetto = { chiave1: 'Geeks', chiave2: 100, chiave3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Produzione
key1>

Utilizzo del metodo filter() e del metodo Object keys()

  • In questo metodo, utilizzeremo i metodi object.keys e filter() per ottenere una chiave in JavaScript in base al suo valore.
  • filtreremo la chiave data e restituiremo il suo valore se presente nell'oggetto.

Esempio: Questo esempio è l'implementazione dell'approccio sopra spiegato.



Javascript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>oggetto[chiave] === valore); } const esempioOggetto = { chiave1: 'Geeks', chiave2: 100, chiave3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Produzione
[ 'key1' ]>

Utilizzando Object.entries() e il metodo reduce()

  • In questo metodo, utilizzeremo i metodi object.entries() e reduce() per ottenere una chiave in JavaScript in base al suo valore.
  • E restituisce il valore della chiave specificata.

Esempio: Questo esempio è l'implementazione dell'approccio sopra spiegato.

Javascript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === valore) { acc.push(key);  } ritorno acc;  }, []); } const esempioOggetto = { chiave1: 'Geeks', chiave2: 100, chiave3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Produzione
[ 'key1' ]>

Utilizzando Metodo Lodash _.findKey()

  • In questo metodo utilizziamo il metodo _.findkey() di lodash.
  • Ciò restituisce la chiave dell'oggetto specificato.

Esempio: Questo esempio è l'implementazione dell'approccio sopra spiegato.

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

Produzione:

  seetu>

Utilizzo del metodo Object.values() e indexOf()

In questo metodo, sfrutteremo il metodo Object.values() per estrarre tutti i valori dall'oggetto e quindi utilizzeremo il metodo indexOf() per trovare l'indice del valore di destinazione nell'array di valori. Una volta ottenuto l'indice, possiamo usarlo per recuperare la chiave corrispondente dall'array di chiavi restituito da Object.keys().

Esempio:

numero casuale in Java
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>

Produzione
city>