logo

Як отримати ключ в об’єкті JavaScript за його значенням?

У цій статті ми дізнаємося, як отримати ключ в об’єкті JavaScript за його значенням. Значення об’єкта можна знайти, перебираючи його властивості. Кожну з цих властивостей можна перевірити на відповідність наданому значенню.

Отримати-ключ-в-об'єкті-JavaScript-за-значенням

Як отримати ключ в об’єкті JavaScript за його значенням?




Нижче наведено підходи, за допомогою яких ми отримуємо ключ в об’єкті JavaScript за його значенням:

Матрична програма мовою c

Зміст

Спосіб 1. Використання циклу for-in

  • Значення об’єкта можна знайти, перебираючи його властивості.
  • Кожну з цих властивостей можна перевірити на відповідність наданому значенню. Властивості об’єкта отримують за допомогою циклу for для об’єкта.
  • Потім ці властивості перевіряються за допомогою методу hasOwnProperty() об’єкта, щоб переконатися, що це пряма властивість об’єкта, а не успадкована.
  • Кожна властивість потім перевіряється, чи вона дорівнює значенню, яке потрібно знайти. Якщо значення збігається, властивість повертається. Це ключ до цінності об'єкта.

приклад: Цей приклад є реалізацією описаного вище підходу.



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

Вихід
key2>

Спосіб 2: Використання методу find()

  • Метод Object.keys() використовується для повернення всіх ключів об’єкта.
  • У цьому масиві ключів метод find() використовується для перевірки відповідності будь-якого з цих ключів наданому значенню.
  • Метод find() використовується для повернення значення першого елемента, який задовольняє функцію перевірки.
  • Якщо значення збігається, ця умова виконується і повертається відповідний ключ. Це ключ до цінності об'єкта.

Примітка: Цей метод додано до специфікації ES6 і може не підтримуватися в старих версіях браузера.

приклад: Цей приклад є реалізацією описаного вище підходу.

Javascript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>об'єкт[ключ] === значення); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Вихід
key1>

Використання методу filter() і методу Object keys().

  • У цьому методі ми використовуємо методи object.keys і filter(), щоб отримати ключ у JavaScript за його значенням.
  • ми відфільтруємо вказаний ключ і повернемо його значення, якщо він присутній в об’єкті.

приклад: Цей приклад є реалізацією описаного вище підходу.



Javascript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[ключ] === значення); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Вихід
[ 'key1' ]>

Використання методу Object.entries() і reduce().

  • У цьому методі ми використовуємо методи object.entries() і reduce(), щоб отримати ключ у JavaScript за його значенням.
  • І повертає значення заданого ключа.

приклад: Цей приклад є реалізацією описаного вище підходу.

Javascript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === значення) { acc.push(ключ);  } return acc;  }, []); } const exampleObject = { key1: 'Geeks', key2: 100, key3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Вихід
[ 'key1' ]>

Використання Метод Lodash _.findKey().

  • У цьому методі ми використовуємо метод _.findkey() lodash.
  • Це повертає ключ даного об’єкта.

приклад: Цей приклад є реалізацією описаного вище підходу.

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

Вихід:

  seetu>

Використання методу Object.values() і indexOf().

У цьому методі ми використаємо метод Object.values(), щоб отримати всі значення з об’єкта, а потім використаємо метод indexOf(), щоб знайти індекс цільового значення в масиві значень. Отримавши індекс, ми можемо використовувати його для отримання відповідного ключа з масиву ключів, який повертає Object.keys().

приклад:

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>

Вихід
city>


значення рядка java