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

109
Vistas
Seleccione y haga coincidir los mismos nombres/valores de propiedad de la lista de objetos en un objeto json

Dado el siguiente objeto json

 { "Item 1": { title: 'Item 1', sub: { left: { prop1: '1', prop2: '2', prop3: '3', }, right: { prop1: '4', prop2: '5', prop3: '6', }, }, }, "Item 2": { title: 'Item 2', sub: { left: { prop1: '7', prop2: '8', prop3: '9', }, right: { prop1: '10', prop2: '11', prop3: '12', }, }, } }

Estoy tratando de hacer coincidir todos los valores en "izquierda" y "derecha" entre sí, para cada objeto individual en la lista. Podría haber más propiedades (prop4 por ejemplo) pero la "izquierda" y la "derecha" para un objeto determinado siempre coincidirán.

En este ejemplo, el resultado deseado sería

 [ [ [ "1", "4" ], [ "2", "5" ], [ "3", "6" ] ], [ [ "7", "10" ], [ "8", "11" ], [ "9", "12" ] ] ]

Realmente odio que solo estoy preguntando esto sin código de trabajo en progreso para compartir. Llegué a recorrer el objeto con Object.Keys, y luego logré seleccionar una propiedad por nombre ("prop1") usando Reducir, pero no puedo llegar tan lejos como para seleccionar todo.

Gracias por cualquier ayuda y consejos

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

0

Aquí hay una solución bastante sencilla que llama a map() en Object.values() del objeto de nivel superior, y luego usa una función zip de utilidad (veaesta pregunta para una discusión completa) para comprimir los valores left y right de la sub .

 const input = { 'Item 1': { title: 'Item 1', sub: { left: { prop1: '1', prop2: '2', prop3: '3', }, right: { prop1: '4', prop2: '5', prop3: '6', }, }, }, 'Item 2': { title: 'Item 2', sub: { left: { prop1: '7', prop2: '8', prop3: '9', }, right: { prop1: '10', prop2: '11', prop3: '12', }, }, }, }; const zip = (...rows) => [...rows[0]].map((_, c) => rows.map((row) => row[c])); const result = Object.values(input).map(({ sub }) => zip(Object.values(sub.left), Object.values(sub.right))); 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