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

Método 1: verificar todas las propiedades del objeto para encontrar el valor: los valores del objeto se pueden encontrar iterando a través de sus propiedades. Cada una de estas propiedades se puede comprobar 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.
A continuación, se comprueba cada propiedad si son iguales al valor que se va a encontrar. Si el valor coincide, se devuelve la propiedad. Esta es la clave del valor del objeto.

Ejemplo:

<!DOCTYPE html>
<html>
  
<head>
    <title>
        How to get a key in a JavaScript
        object by its value ?
    </title>
</head>
  
<body>
    <h1 style="color: green">GeeksforGeeks</h1>
      
    <b>
        How to get a key in a JavaScript
        object by its value ?
    </b>
      
    <p>Getting the key of the value '100'.</p>
      
    <p>See the console for the output</p>
  
    <script>
        function getKeyByValue(object, value) {
            for (var prop in object) {
                if (object.hasOwnProperty(prop)) {
                    if (object[prop] === value)
                    return prop;
                }
            }
        }
      
        var exampleObject = {
            key1: 'Geeks',
            key2: 100,
            key3: 'Javascript'
        };
  
        ans = getKeyByValue(exampleObject, 100);
          
        console.log(ans);
    </script>
</body>
  
</html>

Salida:
by-properties-out
Consola Salida:
by-properties-console

Método 2: Usar el método find() para comparar las claves: El método Object.keys() se usa para devolver todas las claves del objeto. En esta array de claves, el método find() se usa para probar si alguna de estas claves coincide con el valor proporcionado. El método find() se usa 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. Esta es la clave del valor del objeto.

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

Sintaxis:

function getKeyByValue(object, value) {
    return Object.keys(object).find(key => object[key] === value);
}

Ejemplo:

<!DOCTYPE html>
<html>
      
<head>
    <title>
        How to get a key in a JavaScript
        object by its value ?
    </title>
</head>
  
<body>
    <h1 style="color: green">GeeksforGeeks</h1>
      
    <b>How to get a key in a JavaScript object by its value?</b>
      
    <p>Getting the key of the value 'Geeks'.</p>
      
    <p>See the console for the output</p>
  
    <script>
        function getKeyByValue(object, value) {
            return Object.keys(object).find(key => 
                    object[key] === value);
        }
      
        var exampleObject = {
            key1: 'Geeks',
            key2: 100,
            key3: 'Javascript'
        };
      
        ans = getKeyByValue(exampleObject, 'Geeks');
        console.log(ans);
    </script>
</body>
  
</html>

Salida:
by-find-out
Consola Salida:
by-find-console

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *