Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

109
Views
Empuje los datos a la derecha obect javascripts

tengo una función que devuelve datos como este:

 test = [ {test1:'test1'}, {test2:'test2'} ] results = [ {id:1, name:'Leo'} {id:2, name : 'Max'} ]

tengo una función que empujo los datos a los resultados:

 function addThisData(){ const age = [{id:1, name:'14'},{id:2, name : '15'}] results.push(age) }

vuelve así:

 results:[ {id:1, name:'Leo'} {id:2, name : 'Max'} [{id:1, name:'Leo'},{id:2, name : 'Max'}] }]

¿Alguna ayuda para poner la edad en el objeto por id? Quiero lograr estos resultados:

 {id:1,name:'leo',age:'14'} {id:2,name:'Max',age:'15'}

Tenga en cuenta que estoy aprendiendo esto nuevo


¿Es posible hacerlo con foreach() ?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Su matriz de resultados debe ser una matriz de objetos, para hacerlo

 const results = [{ 0: { id: 1, name: 'Leo' }, 2: { id: 2, name: 'Max' } }] const age = [{ id: 1, name: '14' }, { id: 2, name: '15' }] const newArr= [] //looping overelements of result to make a new array of objects results.forEach((e) => { for (let key in e) { newArr.push(e[key]) } }) console.log(newArr); const ages = [ { id: 1, age: '14' }, { id: 2, age: '15' } ] // finding the equalIds by looping over on both array and assigned a new age property in new array with the help .map let answer = [] for (let i = 0; i < ages.length; i++) { answer = newArr.map((elem) => { if (ages[i].id === elem.id) { elem.age = ages[i].age } return elem }) } console.log(answer);
about 4 years ago · Juan Pablo Isaza Report

0

Puede usar el método de find (documentación aquí) para obtener el objeto que desea y luego actualizar el objeto.

Tenga cuidado porque el método devolverá null si no hay ningún objeto correspondiente a los parámetros.

Entonces, en su caso, puede usar el método for each en una de las matrices (o cualquier bucle for que desee, como for i o for in ) y actualizar todos los valores usando find con la otra matriz

se puede ver como

Para cada elemento en la matriz de edad, busque el elemento que coincida con la identificación en la segunda matriz y agregue una propiedad basada en el valor de este elemento


Ejemplo

 const ages = [ {id: 1, age: '14'}, {id: 2,age: '15'} ] const results = [ {id: 1,name: 'Leo'}, {id: 2,name: 'Max'} ] //using foreach ages.forEach((age) => { const resultAssociated = results.find(result => result.id === age.id) if (resultAssociated !== null) { age.name = resultAssociated.name } }) console.log(ages)

about 4 years ago · Juan Pablo Isaza Report

0

Utilice una función de mapa. Funciona igual que foreach pero te ayudará a devolver un valor al final.

Vaya con el siguiente código, logrará lo que necesita:

 let test = [{id:1,name:'n1'}, {id:2,name:'n2'}]; let ages = [{id:1,age:12},{id:2,age:13}];

Imagine que la prueba y las edades son las variables predeterminadas que obtiene con los siguientes valores. Para que pueda combinar ambos y fusionarlos en una matriz de objetos, debe aplicar funciones de mapa y búsqueda.

 result = test.map(ele => { let ageObject = ages.find(e => e.id === ele.id); // #1 return {...ele, ...ageObject}; // #2 }); console.log(result); // array of objects with test and ages values merged

#1 .find() en esta línea funciona como una función de búsqueda, busca el objeto en la matriz dada de objetos tomando como base la condición dada dentro. Devuelve el primer objeto encontrado con la condición coincidente en la matriz dada y lo devuelve.

#2 la sintaxis "...ele" se llama la sintaxis del 'operador de propagación' y distribuirá todos los elementos dentro del objeto dado. {...ele} es igual a {id:1,name:'n1'}. Esta sintaxis ayuda a formar un objeto con los elementos dados mientras elimina los duplicados, si los hay.

Puede optar por el tradicional bucle for dentro del enfoque de bucle for y comparar todos y cada uno de los elementos manualmente y fusionar objetos, pero intentarlo de esta manera le permitirá aprovechar las características de ES6.

about 4 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!