Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

270
Vistas
encontrar valor (y clave) de un objeto en matriz (JS)

Estoy escribiendo una función que iterará a través de un objeto para encontrar si existe el par clave: valor y, de ser así, se agrega a otra matriz (en caso de que haya varias coincidencias)

La matriz contiene objetos. La función toma como argumento qué clave y valor está buscando y luego itera a través de la matriz hasta que lo encuentra. Como puede ver, la clave es una variable y mi problema es que no estoy seguro de cómo acceder a la propiedad del objeto cuando me refiero a un valor variable.

 for (let i = 0; i < arr.length; i++) { if (arr[i].[key] == value) { result.push(arr[i]); } }

Pensé que ponerlo en [clave] ayudaría, pero obviamente estaba equivocado. Intenté buscar en Google cómo hacerlo, pero supongo que no puedo expresarlo con palabras.

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

0

Está confundiendo la notación de puntos con la notación de corchetes .

Retire el . ; arr[i].[key] == value1 debe ser arr[i][key] == value .

 const arr = [{ 'a': 'b' }] key = 'a' value = 'b' const result = [] for (let i = 0; i < arr.length; i++) { if (arr[i][key] == value) { result.push(arr[i]); } } console.log(result)

Puedes simplificar el código usando filter :

 const arr = [{ 'a': 'b' }] key = 'a' value = 'b' const result = arr.filter(e => e[key] == value) console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Ya casi estás allí, solo deshazte del extra . entre [i] y [key] :

 for (let i = 0; i < arr.length; i++) { if (arr[i][key] == value) { result.push(arr[i]); } }

Sin embargo, habría una forma más simple y directa, usando filter :

 const result = arr.filter(obj => obj[key] == value)

Ejemplo:

 const arr = [ { a: 1, b: 1 }, { a: 1, b: 2 }, { a: 2, b: 1 }, { a: 2, b: 2 } ] const key = 'b' const value = 1 const result = arr.filter(obj => obj[key] == value) console.log(result) // Output: [{ a: 1, b: 1 }, { a: 2, b: 1 }]

about 4 years ago · Juan Pablo Isaza Denunciar

0

  • use Array.prototype.filter()
  • Debe saber por adelantado a qué nombre de propiedad exacto está dispuesto a hacer referencia:

 const arr = [ {name:"Evan", age:28}, {name:"John", age:23}, {name:"Anne", age:28}, ]; const searchProp = "age"; const searchValue = 28; const result = arr.filter((user) => user[searchProp] === searchValue); console.log(result)

about 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda