logo

Hvordan får man en nøgle i et JavaScript-objekt efter dets værdi?

I denne artikel vil vi lære, hvordan man får en nøgle i et JavaScript-objekt efter dets værdi. Objektets værdier kan findes ved at gentage dets egenskaber. Hver af disse egenskaber kan kontrolleres for at se, om de matcher den angivne værdi.

Få-en-nøgle-i-et-JavaScript-objekt-ved-dets-værdi

Hvordan får man en nøgle i et JavaScript-objekt efter dets værdi?




Nedenfor er de tilgange, hvorigennem vi får en nøgle i et JavaScript-objekt ved dets værdi:

Indholdsfortegnelse

Metode 1: Brug af en for-in-løkke

  • Objektets værdier kan findes ved at gentage dets egenskaber.
  • Hver af disse egenskaber kan kontrolleres for at se, om de matcher den angivne værdi. Objektets egenskaber opnås ved at bruge en for-løkke på objektet.
  • Disse egenskaber kontrolleres derefter med objektets hasOwnProperty()-metode for at sikre, at det er en direkte egenskab for objektet og ikke en nedarvet.
  • Hver egenskab kontrolleres derefter, om de er lig med den værdi, der skal findes. Hvis værdien matcher, returneres ejendommen. Dette er nøglen til objektets værdi.

Eksempel: Dette eksempel er implementeringen af ​​den ovenfor forklarede tilgang.



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

Produktion
key2>

Metode 2: Brug af find Method()

  • Metoden Object.keys() bruges til at returnere alle objektets nøgler.
  • På dette array af nøgler bruges find()-metoden til at teste, om nogen af ​​disse nøgler matcher den angivne værdi.
  • Find()-metoden bruges til at returnere værdien af ​​det første element, der opfylder testfunktionen.
  • Hvis værdien matcher, er denne betingelse opfyldt, og den respektive nøgle returneres. Dette er nøglen til objektets værdi.

Bemærk: Denne metode blev tilføjet til ES6-specifikationen og understøttes muligvis ikke på ældre browserversioner.

Eksempel: Dette eksempel er implementeringen af ​​den ovenfor forklarede tilgang.

Bourne igen shell
Javascript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>objekt[nøgle] === værdi); } const eksempelObject = { nøgle1: 'Nørder', nøgle2: 100, nøgle3: 'Javascript' }; ans = getKeyByValue(eksempelObjekt, 'Nørder'); console.log(ans);>

Produktion
key1>

Brug af filter() Method og Object keys() Method

  • I denne metode vil vi bruge object.keys og filter() metoder til at få en nøgle i JavaScript efter dens værdi.
  • vi filtrerer den givne nøgle og returnerer dens værdi, hvis den findes i objektet.

Eksempel: Dette eksempel er implementeringen af ​​den ovenfor forklarede tilgang.



Javascript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[nøgle] === værdi); } const eksempelObject = { nøgle1: 'Nørder', nøgle2: 100, nøgle3: 'Javascript' }; ans = getKeyByValue(eksempelObjekt, 'Nørder'); console.log(ans);>

Produktion
[ 'key1' ]>

Brug af Object.entries()- og reduce()-metoden

  • I denne metode vil vi bruge metoderne object.entries() og reduce() til at få en nøgle i JavaScript efter dens værdi.
  • Og returner værdien af ​​den givne nøgle.

Eksempel: Dette eksempel er implementeringen af ​​den ovenfor forklarede tilgang.

Javascript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === værdi) { acc.push(key);  } returnere acc;  }, []); } const eksempelObject = { nøgle1: 'Nørder', nøgle2: 100, nøgle3: 'Javascript' }; ans = getKeyByValue(eksempelObjekt, 'Nørder'); console.log(ans);>

Produktion
[ 'key1' ]>

Ved brug af Lodash _.findKey() metode

  • I denne metode bruger vi _.findkey() metoden for lodash.
  • Dette returnerer nøglen til det givne objekt.

Eksempel: Dette eksempel er implementeringen af ​​den ovenfor forklarede tilgang.

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

Produktion:

tilfældigt tal gen java
  seetu>

Brug af Object.values()- og indexOf()-metoden

I denne metode vil vi udnytte metoden Object.values() til at udtrække alle værdierne fra objektet og derefter bruge metoden indexOf() til at finde indekset for målværdien i rækken af ​​værdier. Når vi har indekset, kan vi bruge det til at hente den tilsvarende nøgle fra rækken af ​​nøgler returneret af Object.keys().

Eksempel:

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>

Produktion
city>