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.

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
- Utilizzando un ciclo for-in
- Utilizzando il metodo find()
- Utilizzo del metodo filter() e del metodo Object keys()
- Utilizzando Object.entries() e il metodo reduce()
- Utilizzo del metodo Lodash _.findKey()
- Utilizzo del metodo Object.values() e indexOf()
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 JavaJavaScript
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>