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.

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
- Brug af en for-in-løkke
- Brug af find Method()
- Brug af filter() Method og Object keys() Method
- Brug af Object.entries()- og reduce()-metoden
- Brug af Lodash _.findKey()-metoden
- Brug af Object.values()- og indexOf()-metoden
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 shellJavascript
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>