logo

¿Cómo obtener una clave en un objeto JavaScript por su valor?

En este artículo, aprenderemos cómo obtener una clave en un objeto JavaScript por su valor. Los valores del objeto se pueden encontrar iterando a través de sus propiedades. Cada una de estas propiedades se puede verificar para ver si coinciden con el valor proporcionado.

Obtener una clave en un objeto JavaScript por su valor

¿Cómo obtener una clave en un objeto JavaScript por su valor?



hacer ejecutable un script de shell


A continuación se detallan los métodos mediante los cuales obtenemos una clave en un objeto JavaScript por su valor:

Tabla de contenidos

Método 1: usar un bucle for-in

  • Los valores del objeto se pueden encontrar iterando a través de sus propiedades.
  • Cada una de estas propiedades se puede verificar para ver si coinciden con el valor proporcionado. Las propiedades del objeto se obtienen utilizando un bucle for en el objeto.
  • Luego, estas propiedades se verifican con el método hasOwnProperty() del objeto para asegurarse de que sea una propiedad directa del objeto y no heredada.
  • Luego se verifica que cada propiedad sea igual al valor que se va a encontrar. Si el valor coincide, se devuelve la propiedad. Ésta es la clave del valor del objeto.

Ejemplo: Este ejemplo es la implementación del enfoque explicado anteriormente.



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

Producción
key2>

Método 2: usar el método de búsqueda()

  • El método Object.keys() se utiliza para devolver todas las claves del objeto.
  • En esta matriz de claves, el método find() se utiliza para probar si alguna de estas claves coincide con el valor proporcionado.
  • El método find() se utiliza para devolver el valor del primer elemento que satisface la función de prueba.
  • Si el valor coincide, entonces se cumple esta condición y se devuelve la clave respectiva. Ésta es la clave del valor del objeto.

Nota: Este método se agregó a la especificación ES6 y es posible que no sea compatible con versiones anteriores del navegador.

Ejemplo: Este ejemplo es la implementación del enfoque explicado anteriormente.

cadenas a números enteros
JavaScript
function getKeyByValue(object, value) {  return Object.keys(object).find(key =>objeto[clave] === valor); } const objeto de ejemplo = { clave1: 'Geeks', clave2: 100, clave3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Producción
key1>

Usando el método filter() y el método Objectkeys()

  • En este método, utilizaremos los métodos object.keys y filter() para obtener una clave en JavaScript por su valor.
  • Filtraremos la clave dada y devolveremos su valor si está presente en el objeto.

Ejemplo: Este ejemplo es la implementación del enfoque explicado anteriormente.



JavaScript
function getKeyByValue(obj, value) {  return Object.keys(obj)  .filter(key =>obj[clave] === valor); } const objeto de ejemplo = { clave1: 'Geeks', clave2: 100, clave3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Producción
[ 'key1' ]>

Usando el método Object.entries() y reduce()

  • En este método, utilizaremos los métodos object.entries() y reduce() para obtener una clave en JavaScript por su valor.
  • Y devolver el valor de la clave dada.

Ejemplo: Este ejemplo es la implementación del enfoque explicado anteriormente.

JavaScript
function getKeyByValue(obj, value) {  return Object.entries(obj)  .reduce((acc, [key, val]) =>{ if (val === valor) { acc.push(clave);  } devolver cuenta;  }, []); } const objeto de ejemplo = { clave1: 'Geeks', clave2: 100, clave3: 'Javascript' }; ans = getKeyByValue(exampleObject, 'Geeks'); console.log(ans);>

Producción
[ 'key1' ]>

Usando Método Lodash _.findKey()

  • En este método estamos utilizando el método _.findkey() de lodash.
  • Esto devuelve la clave del objeto dado.

Ejemplo: Este ejemplo es la implementación del enfoque explicado anteriormente.

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

Producción:

comando arp-a
  seetu>

Usando el método Object.values() y indexOf()

En este método, aprovecharemos el método Object.values() para extraer todos los valores del objeto y luego usaremos el método indexOf() para encontrar el índice del valor objetivo en la matriz de valores. Una vez que tenemos el índice, podemos usarlo para recuperar la clave correspondiente de la matriz de claves devuelta por Object.keys().

Ejemplo:

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>

Producción
city>