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

360
Vistas
Cómo convertir una matriz en un objeto JavaScript

Tengo una matriz como esta (que es similar a una matriz JSON) de longitud n:

 const mainData = [ { phrase: "Phrase 1", categorynumber: 1, optionnumber: 1, }, { phrase: "Phrase 2", categorynumber: 1, optionnumber: 2, }, { phrase: "Phrase 3", categorynumber: 2, optionnumber: 1, }, { phrase: "Phrase 4", categorynumber: 3, optionnumber: 1, }, { phrase: "Phrase 5", categorynumber: 3, optionnumber: 1, }, { phrase: "Phrase 6", categorynumber: 3, optionnumber: 2, }, ];

Me gustaría convertirlo en un Objeto anidado así:

 jsObject = { 1: { 1: ["Phrase 1"], 2: ["Phrase 2"], }, 2: { 1: ["Phrase 3"], }, 3: { 1: ["Phrase 4", "Phrase 5"], 2: ["Phrase 6"], }, };

Esencialmente, el objeto se clasifica según el número de categorynumber y luego el optionnumber . (Tenga en cuenta el formato de "Frase 4" y "Frase 5").

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

0

Reduzca el conjunto de datos accediendo al número de categorynumber como clave principal y al número de optionnumber como clave secundaria. Puede aplicar nuevas opciones a la categoría existente extendiendo ( ... ) la nueva opción y envolviéndola dentro de una matriz.

Si está agregando frases adicionales, también deberá tomar la matriz existente y distribuir el nuevo valor.

 const mainData = [ { phrase: "Phrase 1", categorynumber: 1, optionnumber: 1, }, { phrase: "Phrase 2", categorynumber: 1, optionnumber: 2, }, { phrase: "Phrase 3", categorynumber: 2, optionnumber: 1, }, { phrase: "Phrase 4", categorynumber: 3, optionnumber: 1, }, { phrase: "Phrase 5", categorynumber: 3, optionnumber: 1, }, { phrase: "Phrase 6", categorynumber: 3, optionnumber: 2, }, ]; const jsObject = mainData.reduce((acc, { phrase, categorynumber, optionnumber }) => ({ ...acc, [categorynumber]: { ...(acc[categorynumber] ?? {}), [optionnumber]: [...(acc[categorynumber]?.[optionnumber] ?? []), phrase] } }), {}); console.log(jsObject);
 .as-console-wrapper { top: 0; max-height: 100% !important; }
 <!-- jsObject = { 1: { 1: ["Phrase 1"], 2: ["Phrase 2"] }, 2: { 1: ["Phrase 3"] }, 3: { 1: ["Phrase 4", "Phrase 5"], 2: ["Phrase 6"] } } -->

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