logo

Kaip gauti raktą JavaScript objekte pagal jo vertę?

Š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ę.

Gaukite raktą „JavaScript“ objekte pagal jo vertę

Kaip gauti raktą JavaScript objekte pagal jo vertę?




Toliau pateikiami metodai, kuriais mes gauname JavaScript objekto raktą pagal jo vertę:

Turinys

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 autocad
Javascript
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:

Naudojant Object.values() ir indexOf() metodus

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>