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.

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
- Använda en for-in loop
- Använda find Method()
- Använda filter() Method och Object keys() Method
- Använder metoden Object.entries() och reduce().
- Använder metoden Lodash _.findKey().
- Använder metoden Object.values() och indexOf().
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 arrayJavascript
// 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>