In dit artikel leren we hoe we een sleutel in een JavaScript-object kunnen verkrijgen op basis van de waarde ervan. De waarden van het object kunnen worden gevonden door de eigenschappen ervan te doorlopen. Elk van deze eigenschappen kan worden gecontroleerd om te zien of ze overeenkomen met de opgegeven waarde.

Hoe krijg ik een sleutel in een JavaScript-object op basis van zijn waarde?
Hieronder staan de benaderingen waarmee we een sleutel in een JavaScript-object krijgen op basis van zijn waarde:
Inhoudsopgave
- Een for-in-lus gebruiken
- De zoekmethode() gebruiken
- Met behulp van filter() Methode en Objectsleutels() Methode
- Gebruik de Object.entries() en reduce() Methode
- Met behulp van de Lodash _.findKey()-methode
- Met behulp van de Object.values() en indexOf()-methode
Methode 1: Een for-in-lus gebruiken
- De waarden van het object kunnen worden gevonden door de eigenschappen ervan te doorlopen.
- Elk van deze eigenschappen kan worden gecontroleerd om te zien of ze overeenkomen met de opgegeven waarde. De eigenschappen van het object worden verkregen door een for-lus op het object te gebruiken.
- Deze eigenschappen worden vervolgens gecontroleerd met de methode hasOwnProperty() van het object om er zeker van te zijn dat het een directe eigenschap van het object is en geen erfelijke eigenschap.
- Vervolgens wordt van elke eigenschap gecontroleerd of deze gelijk is aan de te vinden waarde. Als de waarde overeenkomt, wordt de eigenschap geretourneerd. Dit is de sleutel tot de waarde van het object.
Voorbeeld: Dit voorbeeld is de implementatie van de hierboven uiteengezette aanpak.
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);>
Uitvoer
key2>
Methode 2: De zoekmethode() gebruiken
- De Object.keys() methode wordt gebruikt om alle sleutels van het object te retourneren.
- Op deze reeks sleutels wordt de methode find() gebruikt om te testen of een van deze sleutels overeenkomt met de opgegeven waarde.
- De find()-methode wordt gebruikt om de waarde te retourneren van het eerste element dat voldoet aan de testfunctie.
- Als de waarde overeenkomt, is aan deze voorwaarde voldaan en wordt de betreffende sleutel geretourneerd. Dit is de sleutel tot de waarde van het object.
Opmerking: Deze methode is toegevoegd aan de ES6-specificatie en wordt mogelijk niet ondersteund in oudere browserversies.
Voorbeeld: Dit voorbeeld is de implementatie van de hierboven uiteengezette aanpak.
Javascript function getKeyByValue(object, value) { return Object.keys(object).find(key =>object[sleutel] === waarde); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>
Uitvoer
key1>
Met behulp van filter() Methode en Objectsleutels() Methode
- In deze methode zullen we de methoden object.keys en filter() gebruiken om een sleutel in JavaScript op basis van zijn waarde te verkrijgen.
- we filteren de gegeven sleutel en retourneren de waarde ervan als deze in het object aanwezig is.
Voorbeeld: Dit voorbeeld is de implementatie van de hierboven uiteengezette aanpak.
Javascript
function getKeyByValue(obj, value) { return Object.keys(obj) .filter(key =>obj[sleutel] === waarde); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>
Uitvoer
[ 'key1' ]>
Gebruik de Object.entries() en reduce() Methode
- In deze methode zullen we de methoden object.entries() en reduce() gebruiken om een sleutel in JavaScript te verkrijgen op basis van zijn waarde.
- En retourneer de waarde van de gegeven sleutel.
Voorbeeld: Dit voorbeeld is de implementatie van de hierboven uiteengezette aanpak.
Javascript function getKeyByValue(obj, value) { return Object.entries(obj) .reduce((acc, [key, val]) =>{ if (val === waarde) { acc.push(sleutel); } retourrekening; }, []); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>
Uitvoer
[ 'key1' ]>
Gebruik makend van Lodash _.findKey()-methode
- In deze methode gebruiken we de _.findkey() methode van lodash.
- Dit retourneert de sleutel van het gegeven object.
Voorbeeld: Dit voorbeeld is de implementatie van de hierboven uiteengezette aanpak.
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);>
Uitgang:
seetu>
Met behulp van de Object.values() en indexOf()-methode
Bij deze methode gebruiken we de methode Object.values() om alle waarden uit het object te extraheren en gebruiken we vervolgens de methode indexOf() om de index van de doelwaarde in de reeks waarden te vinden. Zodra we de index hebben, kunnen we deze gebruiken om de corresponderende sleutel op te halen uit de reeks sleutels die wordt geretourneerd door Object.keys().
hoeveel steden zijn er in ons
Voorbeeld:
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>
Uitvoer
city>