logo

Hur får man en nyckel i ett JavaScript-objekt efter dess värde?

I den här artikeln kommer vi att lära oss hur man får en nyckel i ett JavaScript-objekt genom dess värde. Objektets värden kan hittas genom att iterera genom dess egenskaper. Var och en av dessa egenskaper kan kontrolleras för att se om de matchar det angivna värdet.

Hämta-en-nyckel-i-ett-JavaScript-objekt-av-dess-värde

Hur får man en nyckel i ett JavaScript-objekt efter dess värde?


Nedan är tillvägagångssätten genom vilka vi får en nyckel i ett JavaScript-objekt genom dess värde:



Innehållsförteckning

Metod 1: Använd en for-in loop

  • Objektets värden kan hittas genom att iterera genom dess egenskaper.
  • Var och en av dessa egenskaper kan kontrolleras för att se om de matchar det angivna värdet. Objektets egenskaper erhålls genom att använda en for-loop på objektet.
  • Dessa egenskaper kontrolleras sedan med objektets hasOwnProperty()-metod för att säkerställa att det är en direkt egenskap hos objektet och inte en ärvd.
  • Varje egenskap kontrolleras sedan om de är lika med värdet som ska hittas. Om värdet matchar returneras egenskapen. Detta är nyckeln till objektets värde.

Exempel: Detta exempel är implementeringen av det ovan förklarade tillvägagångssättet.

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>

Metod 2: Använda find Method()

  • Metoden Object.keys() används för att returnera alla nycklar för objektet.
  • På denna uppsättning nycklar används metoden find() för att testa om någon av dessa nycklar matchar det angivna värdet.
  • Metoden find() används för att returnera värdet på det första elementet som uppfyller testfunktionen.
  • Om värdet matchar är detta villkor uppfyllt och respektive nyckel returneras. Detta är nyckeln till objektets värde.

Notera: Denna metod har lagts till i ES6-specifikationen och kanske inte stöds i äldre webbläsarversioner.

Exempel: Detta exempel är implementeringen av det ovan förklarade tillvägagångssättet.

Javascript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>objekt[nyckel] === värde); } const exempelObject = { nyckel1: 'Geeks', nyckel2: 100, nyckel3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Produktion
key1>

Använda filter() Method och Object keys() Method

  • I den här metoden kommer vi att använda metoderna object.keys och filter() för att få en nyckel i JavaScript efter dess värde.
  • vi kommer att filtrera den givna nyckeln och returnera dess värde om den finns i objektet.

Exempel: Detta exempel är implementeringen av det ovan förklarade tillvägagångssättet.

Javascript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[nyckel] === värde); } const exempelObject = { nyckel1: 'Geeks', nyckel2: 100, nyckel3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Produktion
[ 'key1' ]>

Använder metoden Object.entries() och reduce().

  • I den här metoden kommer vi att använda metoderna object.entries() och reduce() för att få en nyckel i JavaScript efter dess värde.
  • Och returnera värdet på den givna nyckeln.

Exempel: Detta exempel är implementeringen av det ovan förklarade tillvägagångssättet.

Javascript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === värde) { acc.push(nyckel);  } returnera acc;  }, []); } const exempelObject = { nyckel1: 'Geeks', nyckel2: 100, nyckel3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Produktion
[ 'key1' ]>

Använder sig av Lodash _.findKey() Metod

  • I den här metoden använder vi metoden _.findkey() för lodash.
  • Detta returnerar nyckeln för det givna objektet.

Exempel: Detta exempel är implementeringen av det ovan förklarade tillvägagångssättet.

java lägga till i en array
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:

  seetu>

Använder metoden Object.values() och indexOf().

I den här metoden kommer vi att använda metoden Object.values() för att extrahera alla värden från objektet och sedan använda metoden indexOf() för att hitta indexet för målvärdet i värdematrisen. När vi väl har indexet kan vi använda det för att hämta motsvarande nyckel från arrayen av nycklar som returneras av Object.keys().

Exempel:

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>