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

Aquí, vamos a aprender cómo obtener una clave en un objeto por su valor en JavaScript? Aquí, también nos enteramos de la hasOwnProperty () en JavaScript .

En este artículo, veremos dos métodos de cómo conseguir una llave en un objeto de su valor? lo general, cuando se recorre a través de un objeto se recorre a través de sus llaves y podemos obtener fácilmente el valor correspondiente. Sin embargo, lo contrario es en realidad un poco diferente. Considere el siguiente objeto,

const car= {
company: 'Merc',
model: 'Benz',
type: 'luxury sedan',
year: 2007,
modelNo: 'MB2007-4762',
topSpeed: 240
}
console.log(car);

salida

{company: "Merc", model: "Benz", type: "luxury sedan", year: 2007, modelNo: "MB2007-4762", …}
company: "Merc"
model: "Benz"
modelNo: "MB2007-4762"
topSpeed: 240
type: "luxury sedan"
year: 2007
__proto__: Object

Podemos obtener fácilmente el valor correspondiente a una tecla determinada usando la notación de puntos o el método del índice. Sin embargo, para obtener una clave de valor de una manera sería iterar a través de sus propiedades y se les class un partido for un valor. Podemos hacer esto utilizando una hasOwnProperty () método bucle for y.

function getkeyFromvalue(object, value) {
for (let ob in object) {
if (object.hasOwnProperty(ob)) {
if (object[ob] === value)
return ob;
}
}
}
console.log(getkeyFromvalue(car, 2007));

salida

"Year"

La razón por la que usamos la hasOwnProperty () , primero es comprobar si el objeto tenía la misma propiedad o si se hereda de que la propiedad de alguna parte. Vamos a probar esto unas cuantas veces más,

console.log(getkeyFromvalue(car, 'Merc'));
console.log(getkeyFromvalue(car, 240));

salida

"company"
"topSpeed"

De esta manera podemos conseguir una llave en un objeto de su valor . Sin embargo, este es un enfoque ingenuo, donde comprobamos for cada llave a través del objeto para que coincida con su valor. Podemos utilizar el método find () para comparar claves para tener un cierto valor que queremos encontrar. Llamaremos a este en una serie de teclas que podemos obtener usando el método Object.keys () que nos devuelve todas las claves de un objeto. Vamos a tratar de hacerlo de esta manera,

function getkeyFromvalue2(object, value) {
return Object.keys(object).find(key => object[key] === value)
}
console.log(getkeyFromvalue2(car, 2007));
console.log(getkeyFromvalue2(car, 240));
console.log(getkeyFromvalue2(car, 'Benz'));

salida

"year"
"topSpeed"
"Model"

Este método es mucho más fácil y también más simple con menos líneas de código. Si nos fijamos en esto, que es algo muy similar a como lo hicimos antes de usar el bucle for. Object.keys () se introdujo en la ES15 y hace que la tarea de almacenar todas las llaves en algún lugar y luego iterar a través de ellos más simple.


Deja un comentario

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