• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

224
Views
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.

almost 3 years ago · Juan Pablo Isaza
3 answers
Answer question

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)

almost 3 years ago · Juan Pablo Isaza Report

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 }]

almost 3 years ago · Juan Pablo Isaza Report

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)

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error