logo

Cum să obțineți o cheie într-un obiect JavaScript după valoarea sa?

În acest articol, vom învăța cum să obținem o cheie într-un obiect JavaScript după valoarea sa. Valorile obiectului pot fi găsite prin iterarea proprietăților sale. Fiecare dintre aceste proprietăți poate fi verificată pentru a vedea dacă se potrivesc cu valoarea furnizată.

Obțineți-o-cheie-în-un-obiect-JavaScript-după-valoarea sa

Cum să obțineți o cheie într-un obiect JavaScript după valoarea sa?




Mai jos sunt abordările prin care obținem o cheie într-un obiect JavaScript după valoarea sa:

Cuprins

Metoda 1: Utilizarea unei bucle for-in

  • Valorile obiectului pot fi găsite prin iterarea proprietăților sale.
  • Fiecare dintre aceste proprietăți poate fi verificată pentru a vedea dacă se potrivesc cu valoarea furnizată. Proprietățile obiectului sunt obținute prin utilizarea unei bucle for pe obiect.
  • Aceste proprietăți sunt apoi verificate cu metoda hasOwnProperty() a obiectului pentru a vă asigura că este o proprietate directă a obiectului și nu una moștenită.
  • Fiecare proprietate este apoi verificată dacă sunt egale cu valoarea de găsit. Dacă valoarea se potrivește, atunci proprietatea este returnată. Aceasta este cheia valorii obiectului.

Exemplu: Acest exemplu este implementarea abordării explicate mai sus.



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

Ieșire
key2>

Metoda 2: Folosind metoda find()

  • Metoda Object.keys() este folosită pentru a returna toate cheile obiectului.
  • Pe această matrice de chei, metoda find() este utilizată pentru a testa dacă oricare dintre aceste chei se potrivește cu valoarea furnizată.
  • Metoda find() este folosită pentru a returna valoarea primului element care satisface funcția de testare.
  • Dacă valoarea se potrivește, atunci această condiție este îndeplinită și cheia respectivă este returnată. Aceasta este cheia valorii obiectului.

Notă: Această metodă a fost adăugată la specificația ES6 și este posibil să nu fie acceptată pe versiunile mai vechi de browser.

Exemplu: Acest exemplu este implementarea abordării explicate mai sus.

Javascript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>obiect[cheie] === valoare); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>>>  
Ieșire
key1>

Folosind metoda filter() și metoda cheilor obiect().

  • În această metodă, vom obține metodele object.keys și filter() pentru a obține o cheie în JavaScript după valoarea sa.
  • vom filtra cheia dată și vom returna valoarea acesteia dacă este prezentă în obiect.

Exemplu: Acest exemplu este implementarea abordării explicate mai sus.



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

Folosind metoda Object.entries() și reduce().

  • În această metodă, vom obține metodele use object.entries() și reduce() pentru a obține o cheie în JavaScript după valoarea sa.
  • Și returnează valoarea cheii date.

Exemplu: Acest exemplu este implementarea abordării explicate mai sus.

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

Folosind Metoda Lodash _.findKey().

  • În această metodă folosim metoda _.findkey() a lui lodash.
  • Aceasta returnează cheia obiectului dat.

Exemplu: Acest exemplu este implementarea abordării explicate mai sus.

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

Ieșire:

Folosind metoda Object.values() și indexOf().

În această metodă, vom folosi metoda Object.values() pentru a extrage toate valorile din obiect și apoi vom folosi metoda indexOf() pentru a găsi indexul valorii țintă în matricea de valori. Odată ce avem indexul, îl putem folosi pentru a prelua cheia corespunzătoare din matricea de chei returnată de Object.keys().

Exemplu:

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>

Ieșire
city>