logo

Jak uzyskać klucz w obiekcie JavaScript według jego wartości?

W tym artykule dowiemy się, jak uzyskać klucz w obiekcie JavaScript na podstawie jego wartości. Wartości obiektu można znaleźć, iterując po jego właściwościach. Każdą z tych właściwości można sprawdzić, aby sprawdzić, czy odpowiadają podanej wartości.

Pobierz klucz w obiekcie JavaScript według jego wartości

Jak uzyskać klucz w obiekcie JavaScript według jego wartości?




Poniżej przedstawiono sposoby, dzięki którym uzyskujemy klucz w obiekcie JavaScript według jego wartości:

Spis treści

Metoda 1: Użycie pętli for-in

  • Wartości obiektu można znaleźć, iterując po jego właściwościach.
  • Każdą z tych właściwości można sprawdzić, aby sprawdzić, czy odpowiadają podanej wartości. Właściwości obiektu uzyskuje się za pomocą pętli for na obiekcie.
  • Właściwości te są następnie sprawdzane za pomocą metody hasOwnProperty() obiektu, aby upewnić się, że jest to bezpośrednia właściwość obiektu, a nie dziedziczona.
  • Następnie sprawdzana jest każda właściwość, czy jest równa wartości, którą należy znaleźć. Jeśli wartość jest zgodna, właściwość jest zwracana. To jest klucz do wartości przedmiotu.

Przykład: Ten przykład jest implementacją podejścia wyjaśnionego powyżej.



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);>

Wyjście
key2>

Metoda 2: Korzystanie z metody find()

  • Metoda Object.keys() służy do zwracania wszystkich kluczy obiektu.
  • W przypadku tej tablicy kluczy metoda find() służy do sprawdzania, czy którykolwiek z tych kluczy odpowiada podanej wartości.
  • Metoda find() służy do zwrócenia wartości pierwszego elementu spełniającego funkcję testującą.
  • Jeśli wartość jest zgodna, warunek jest spełniony i zwracany jest odpowiedni klucz. To jest klucz do wartości przedmiotu.

Notatka: Ta metoda została dodana do specyfikacji ES6 i może nie być obsługiwana w starszych wersjach przeglądarek.

Przykład: Ten przykład jest implementacją podejścia wyjaśnionego powyżej.

JavaScript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>obiekt[klucz] === wartość); } const przykładObject = { klucz1: 'Geeks', klucz2: 100, klucz3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); konsola.log(ans);>

Wyjście
key1>

Korzystanie z metody filter() i metody kluczy obiektów().

  • W tej metodzie skorzystamy z metod object.keys i filter(), aby uzyskać klucz w JavaScript według jego wartości.
  • przefiltrujemy podany klucz i zwrócimy jego wartość jeśli występuje w obiekcie.

Przykład: Ten przykład jest implementacją podejścia wyjaśnionego powyżej.



JavaScript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[klucz] === wartość); } const exampleObject = { klucz1: 'Geeks', klucz2: 100, klucz3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); konsola.log(ans);>

Wyjście
[ 'key1' ]>

Korzystanie z metod Object.entries() i redukcji().

  • W tej metodzie skorzystamy z metod object.entries() i redukcji(), aby uzyskać klucz w JavaScript według jego wartości.
  • I zwróć wartość danego klucza.

Przykład: Ten przykład jest implementacją podejścia wyjaśnionego powyżej.

JavaScript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === wartość) { acc.push(key);  } powrót wg;  }, []); } const exampleObject = { klucz1: 'Geeks', klucz2: 100, klucz3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); konsola.log(ans);>

Wyjście
[ 'key1' ]>

Za pomocą Metoda Lodash _.findKey().

  • W tej metodzie używamy metody _.findkey() lodash.
  • Zwraca klucz danego obiektu.

Przykład: Ten przykład jest implementacją podejścia wyjaśnionego powyżej.

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);>

Wyjście:

  seetu>

Korzystanie z metod Object.values() i IndexOf().

W tej metodzie wykorzystamy metodę Object.values() do wyodrębnienia wszystkich wartości z obiektu, a następnie użyjemy metody indeksOf() do znalezienia indeksu wartości docelowej w tablicy wartości. Kiedy już mamy indeks, możemy go użyć do pobrania odpowiedniego klucza z tablicy kluczy zwróconych przez Object.keys().

Przykład:

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>

Wyjście
city>