logo

Hoe krijg ik een sleutel in een JavaScript-object op basis van zijn waarde?

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.

Haal-een-sleutel-in-een-JavaScript-object-op-van-zijn-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

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>