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

225
Visualizações
¿Cómo reducir una matriz de objetos con dos propiedades en dos matrices, una para cada propiedad?

Tengo una matriz de objetos con dos propiedades: canais y topicos :

 channel: Array(3) 0: {canais: 'canal1', topicos: 'topico1'} 1: {canais: 'canal2', topicos: 'topico2'} 2: {canais: 'canal3', topicos: 'topico3'}

Quiero dividir en dos matrices de cadenas llamadas canais y topicos:

 canais : [ "canal1" , "canal2", "canal3" ]; topicos: [ "topico1" , "topico2", "topico3" ];
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Tu puedes hacer

 const canais = channel.map(item => item.canais) const topicos = channel.map(item => item.topicos)
about 4 years ago · Juan Pablo Isaza Relatório

0

Podrías hacer esto de varias maneras:

  1. Asigne cada elemento a una matriz de 2 elementos [canais, topicos] y luego transponga el resultado para obtener dos matrices (aquí el original es su matriz):

     const transpose = arr => arr[0].map((x, i) => arr.map(x => x[i])) const [canais, topicos] = transpose(original.map(a => [a.canais, a.topicos]))

    Ver también: Transposición de una matriz 2D en JavaScript, que es el origen de la función de transpose anterior.

  2. Use un bucle forEach y acumule:

     const canais = [] const topicos = [] original.forEach(el => { canais.push(el.canais) topicos.push(el.topicos) })
  3. Normal for bucle y acumular:

     const allCanais = [] const allTopicos = [] for (const {canais, topicos} of original) { allCanais.push(canais) allTopicos.push(topicos) }
  4. Asigne dos veces (primero extraiga todos los el.canais y luego todos los el.topicos ), aunque esto itera dos veces sobre los datos, lo que probablemente no sea necesario.

about 4 years ago · Juan Pablo Isaza Relatório

0

Si necesita que sea dinámico, puede usar un bucle for anidado para recorrer cada elemento y crear/agregar matrices en función de la clave, luego use un objeto para almacenar cada matriz de valores.

 let channelNames = {}; for(let c of channel){ for(let key in c){ if(!channelNames[key]) channelNames[key] = []; channelNames[key].push(i[key]); } }
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