• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

120
Vistas
Obtenga la clave de un objeto JS del valor

Estoy tratando de obtener la key de un JS Object en Typescript a partir de un valor de entrada, el problema es que los valores están dentro de un Array .

Esto es lo que he visto en el caso de que el valor no esté en una matriz:

 const exampleObject = { key1: 'Geeks', key2: 'Javascript' }; function getKeyByValue(object, value) { for (var prop in object) { if (object.hasOwnProperty(prop)) { if (object[prop] === value) return prop; } } } console.log(getKeyByValue(exampleObject,'Geeks')) // key1

Este es un ejemplo de mi objeto del que quiero obtener la clave:

 const exampleObject = { key1: ['Geeks','test1','test2'], key2: ['Javascript','test3','test4'] }; function getKeyByValue(object, value) { for (var prop in object) { if (object.hasOwnProperty(prop)) { if (object[prop] === value) return prop; } } } console.log(getKeyByValue(exampleObject,'Geeks')) // undefined

Necesito obtener la clave sin usar Array.prototype.includes() , porque escribir la variable resultante como String me da un error de que puede no estar definida.

Mi problema : no sé cómo recorrer la matriz dentro de la función para encontrar el valor y obtener la clave

Actualizar :

Lo que quiero es evitar la posibilidad de devolver un indefinido, ya que el valor de entrada siempre estará dentro del objeto, ¿cómo puedo lograr esto?

about 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

@segmet Puedes usar mi código

 const exampleObject = { key1: ['Geeks', 'test1', 'test2'], key2: ['Javascript', 'test3', 'test4'] }; function getKeyByValue(object, value) { var output = ""; for (var prop in object) { // finding and removing element from array object[prop].find(i => { if (i === value) { output = prop; return prop; } } ) } return output } console.log(getKeyByValue(exampleObject, 'Geeks'))
about 3 years ago · Juan Pablo Isaza Denunciar

0

function getKeyByValue(object, value) { const key = Object.entries(object).filter(([key, val]) => val.includes(value)); return Object.fromEntries(key); }

Pruebe esta función en su lugar. Obtendrá el objeto que coincida con sus claves.

about 3 years ago · Juan Pablo Isaza Denunciar

0

Puedes hacer algo como esto y luego buscar null

 const getKeyFromValue = (obj:Object, value:string | string[]) => { for (let key in obj) { if (typeof value === 'string') { if (obj[ key ].includes(value)) { return key; } } else if (Array.isArray(value)) { if (obj[ key ].every(val => value.includes(val))) { return key; } } } return null; }
about 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda