Šiame straipsnyje sužinosime, kaip gauti JavaScript objekto raktą pagal jo vertę. Objekto reikšmes galima rasti iteruojant per jo savybes. Kiekvieną iš šių savybių galima patikrinti, ar jos atitinka pateiktą vertę.

Kaip gauti raktą JavaScript objekte pagal jo vertę?
Toliau pateikiami metodai, kuriais mes gauname JavaScript objekto raktą pagal jo vertę:
Turinys
- Naudojant for-in kilpą
- Naudojant paieškos metodą ()
- Naudojant filtro () metodą ir objekto raktus () metodą
- Naudojant Object.entries() ir sumažinti() metodus
- Naudojant Lodash _.findKey() metodą
- Naudojant Object.values() ir indexOf() metodus
1 būdas: naudojant įėjimo kilpą
- Objekto reikšmes galima rasti iteruojant jo savybes.
- Kiekvieną iš šių savybių galima patikrinti, ar jos atitinka pateiktą vertę. Objekto savybės gaunamos naudojant for kilpą objekte.
- Tada šios savybės patikrinamos naudojant objekto metodą hasOwnProperty(), siekiant įsitikinti, kad tai tiesioginė objekto savybė, o ne paveldima.
- Tada kiekviena savybė patikrinama, ar ji lygi reikšmei, kurią reikia rasti. Jei vertė sutampa, turtas grąžinamas. Tai yra objekto vertės raktas.
Pavyzdys: Šis pavyzdys yra aukščiau išaiškinto požiūrio įgyvendinimas.
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);> Išvestis
key2>
2 metodas: naudokite paieškos metodą ()
- Metodas Object.keys() naudojamas visiems objekto raktams grąžinti.
- Šiame raktų masyve metodas find() naudojamas patikrinti, ar kuris nors iš šių raktų atitinka pateiktą reikšmę.
- Find() metodas naudojamas pirmojo elemento, atitinkančio testavimo funkciją, reikšmei grąžinti.
- Jei reikšmė sutampa, ši sąlyga įvykdoma ir grąžinamas atitinkamas raktas. Tai yra objekto vertės raktas.
Pastaba: Šis metodas buvo įtrauktas į ES6 specifikaciją ir gali būti nepalaikomas senesnėse naršyklės versijose.
Pavyzdys: Šis pavyzdys yra aukščiau išaiškinto požiūrio įgyvendinimas.
Javascript function getKeyByValue(object, value) { return Object.keys(object).find(key =>objektas[raktas] === reikšmė); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>>
Išvestis key1>
Naudojant filtro () metodą ir objekto raktus () metodą
- Taikant šį metodą, mes naudosime objektus.keys ir filter() metodus, kad gautume JavaScript raktą pagal jo vertę.
- mes filtruosime nurodytą raktą ir grąžinsime jo reikšmę, jei ji yra objekte.
Pavyzdys: Šis pavyzdys yra aukščiau išaiškinto požiūrio įgyvendinimas.
3d autocadJavascript
function getKeyByValue(obj, value) { return Object.keys(obj) .filter(key =>obj[raktas] === reikšmė); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>>
Išvestis Naudojant Object.entries() ir sumažinti() metodus
- Taikant šį metodą, mes gausime objektus.entries() ir reduction() metodus, kad gautume JavaScript raktą pagal jo vertę.
- Ir grąžinkite duoto rakto reikšmę.
Pavyzdys: Šis pavyzdys yra aukščiau išaiškinto požiūrio įgyvendinimas.
Javascript function getKeyByValue(obj, value) { return Object.entries(obj) .reduce((acc, [key, val]) =>{ if (val === reikšmė) { acc.push(key); } return acc; }, []); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>>
Išvestis Naudojant Lodash _.findKey() metodas
- Šiuo metodu naudojame lodash _.findkey() metodą.
- Tai grąžina nurodyto objekto raktą.
Pavyzdys: Šis pavyzdys yra aukščiau išaiškinto požiūrio įgyvendinimas.
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);> Išvestis:
Taikydami šį metodą, mes panaudosime metodą Object.values() norėdami išgauti visas objekto reikšmes, o tada naudosime metodą indexOf() norėdami rasti tikslinės vertės indeksą reikšmių masyve. Kai turėsime indeksą, galime jį naudoti norėdami gauti atitinkamą raktą iš Object.keys() grąžintų raktų masyvo.
Pavyzdys:
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> Išvestis
city>