Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

108
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda