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.

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
- Korzystanie z pętli for-in
- Korzystanie z metody find()
- Korzystanie z metody filter() i metody kluczy obiektów().
- Korzystanie z metod Object.entries() i redukcji().
- Korzystanie z metody Lodash _.findKey().
- Korzystanie z metod Object.values() i IndexOf().
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>