logo

Kako pridobiti ključ v objektu JavaScript po njegovi vrednosti?

V tem članku se bomo naučili, kako pridobiti ključ v objektu JavaScript po njegovi vrednosti. Vrednosti predmeta je mogoče najti s ponavljanjem skozi njegove lastnosti. Vsako od teh lastnosti je mogoče preveriti, ali se ujema s podano vrednostjo.

Get-a-key-in-a-JavaScript-object-by-its-value

Kako pridobiti ključ v objektu JavaScript po njegovi vrednosti?




Spodaj so pristopi, s katerimi pridobimo ključ v objektu JavaScript glede na njegovo vrednost:

Kazalo

java par

1. način: uporaba zanke for-in

  • Vrednosti predmeta je mogoče najti s ponavljanjem skozi njegove lastnosti.
  • Vsako od teh lastnosti je mogoče preveriti, ali se ujema s podano vrednostjo. Lastnosti predmeta se pridobijo z uporabo zanke for na objektu.
  • Te lastnosti se nato preverijo z metodo objekta hasOwnProperty(), da se zagotovi, da gre za neposredno lastnost predmeta in ne za podedovano.
  • Vsaka lastnost se nato preveri, ali je enaka vrednosti, ki jo je treba najti. Če se vrednost ujema, je lastnost vrnjena. To je ključ do vrednosti predmeta.

primer: Ta primer je implementacija zgoraj razloženega pristopa.



matematika naključna java
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);>

Izhod
key2>

2. način: uporaba metode find()

  • Metoda Object.keys() se uporablja za vrnitev vseh ključev predmeta.
  • V tem nizu ključev se metoda find() uporablja za preizkus, ali se kateri od teh ključev ujema s podano vrednostjo.
  • Metoda find() se uporablja za vrnitev vrednosti prvega elementa, ki ustreza funkciji testiranja.
  • Če se vrednost ujema, je ta pogoj izpolnjen in ustrezen ključ je vrnjen. To je ključ do vrednosti predmeta.

Opomba: Ta metoda je bila dodana specifikaciji ES6 in morda ni podprta v starejših različicah brskalnika.

primer: Ta primer je implementacija zgoraj razloženega pristopa.

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

Izhod
key1>

Uporaba metode filter() in metode Object keys().

  • V tej metodi bomo uporabili metodi object.keys in filter(), da bi dobili ključ v JavaScriptu glede na njegovo vrednost.
  • dani ključ bomo filtrirali in vrnili njegovo vrednost, če je prisoten v objektu.

primer: Ta primer je implementacija zgoraj razloženega pristopa.



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

Izhod
[ 'key1' ]>

Uporaba metode Object.entries() in reduce().

  • V tej metodi bomo uporabili metodi object.entries() in reduce(), da bi dobili ključ v JavaScriptu po njegovi vrednosti.
  • In vrne vrednost danega ključa.

primer: Ta primer je implementacija zgoraj razloženega pristopa.

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

Izhod
[ 'key1' ]>

Uporaba Metoda Lodash _.findKey().

  • Pri tej metodi uporabljamo metodo _.findkey() programa lodash.
  • To vrne ključ danega predmeta.

primer: Ta primer je implementacija zgoraj razloženega pristopa.

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

Izhod:

java int v nizu
  seetu>

Uporaba metode Object.values() in indexOf().

Pri tej metodi bomo uporabili metodo Object.values(), da izvlečemo vse vrednosti iz predmeta, nato pa bomo uporabili metodo indexOf(), da poiščemo indeks ciljne vrednosti v nizu vrednosti. Ko imamo indeks, ga lahko uporabimo za pridobitev ustreznega ključa iz niza ključev, ki jih vrne Object.keys().

primer:

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>

Izhod
city>