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

174
Vistas
Reemplazar matriz en objeto anidado en Javascript

He pasado una buena parte del día tratando de reemplazar matrices de un objeto anidado existente, pero no sé cómo hacerlo. Este es mi objeto original:

 { "id": "a8df1653-238a-4f23-fe42-345c5d928b34", "webSections": { "id": "x58654a9-283b-4fa6-8466-3f7534783f8", "sections": [ { "id": "92d7e428-4a5b-4f7e-bc7d-b761ca018922", "title": "Websites", "questions": [ { id: 'dee6e3a6-f207-f3db-921e-32a0b745557', text: 'Website questions', items: Array(11) } ] }, { "id": "79e42d88-7dd0-4f70-b6b4-dea4b4a64ef3", "title": "Blogs", "questions": [ ... ] }, { "id": "439ded88-d7ed0-de70-b6b4-dea4b4a64e840", "title": "App questions", "questions": [ ... ] } ] }

Me gustaría reemplazar las matrices de preguntas en el objeto original o en una copia del mismo.

 const newMenu = [ {id: '34bb96c7-1eda-4f10-8acf-e6486296f4dd', text: 'Website questions', items: Array(24)}, {id: '520c2d3f-6117-4f6a-904f-2477e3347472', text: 'Blog questions', item: Array(7)}, {id: '302b658a-9d8c-4f53-80f6-3f2275bfble', title: 'App questions', items: Array(14)} ]

Estoy tratando de hacer esto por su índice pero desafortunadamente no funciona.

 webSections.sections.forEach((item, index) => { return webSections.sections[index].questions, newMenu[index]); }

¿Alguien ve lo que estoy haciendo mal?

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

0

El valor devuelto por la devolución de llamada pasada a forEach no se utilizará en ninguna parte.

Si desea evitar la mutación del objeto original y las preguntas de actualización, puede usar Array.prototype.map y la sintaxis de distribución de objetos.

 const object = { "id": "a8df1653-238a-4f23-fe42-345c5d928b34", "webSections": { "id": "x58654a9-283b-4fa6-8466-3f7534783f8", "sections": [ { "id": "92d7e428-4a5b-4f7e-bc7d-b761ca018922", "title": "Websites", "questions": [ { id: 'dee6e3a6-f207-f3db-921e-32a0b745557', ... const updatedObject = { ...object, webSections: { ...object.webSections, sections: object.webSections.sections.map((section, index) => ({...section, questions: newMenu[index]})) } }

Si solo quieres mutar el objeto original

 object.webSections.sections.forEach((_, index) => { section.questions = newMenu[index] })
about 4 years ago · Juan Pablo Isaza Denunciar

0

 const newSections = myObj.webSections.sections.map((obj, index) => { const newQuestions = newItems[index]; return { ...obj, questions: [newQuestions], }; }); console.log(newSections);

MyObj es el objeto principal. Esto producirá la nueva matriz de secciones que puede combinar con su objeto principal, supongo ...

@Ramesh Reddy tiene la respuesta más completa.

about 4 years ago · Juan Pablo Isaza Denunciar

0

La forma más sencilla si no te importa la mutación es:

 myObject.webSections.sections.forEach((section, index) => { section.questions = newMenu[index].items; })

Ha utilizado su 'forEach' con una sintaxis incorrecta. Consulte MDN sobre cómo se usa.

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