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

100
Visualizações
Clúster dos matrices de objetos javascript

tengo dos matrices

 array1 = ['jan', 'mar', 'dec', 'jan', 'sep', 'nov', 'mar']; array2 = [3, 5, 5, 4, 5, 8, 2];

como se ve, cada mes puede aparecer más de una vez.

me gustaría agrupar/ordenar estos datos para tener 2 matrices que muestren el mes y los valores totales correspondientes, en esencia, obtener todos los valores que corresponden a enero, sumarlos y enviarlos a otra matriz, febrero debe sumar todos los valores de febrero y enero también y así sucesivamente. así como una cuarta matriz que contiene meses, sin repeticiones. algo como

 array3 = ['jan', 'mar', 'sep', 'nov', 'dec']; array4 = [7, 14, 19, 24, 32]; //totals
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Una forma es crear un objeto plano temporal, codificado por los nombres de los meses y un entero correspondiente que inicialmente se establece en 0. Luego agregue a esos enteros los valores tal como aparecen en la segunda matriz, correspondiente al mes. Finalmente desglose ese objeto en sus claves y valores:

 var array1=['jan','mar','dec','jan','sep','nov','mar']; var array2=[3,5,5,4,5,8,2]; var temp = Object.fromEntries(array1.map(month => [month, 0])); array1.forEach((month, i) => temp[month] += array2[i]); array1 = Object.keys(temp); array2 = Object.values(temp); console.log(JSON.stringify(array1)); console.log(JSON.stringify(array2));

about 4 years ago · Juan Pablo Isaza Relatório

0

Primero necesita una matriz de todos los meses, luego recorra esa matriz para obtener la suma que está debajo de ese mes.

Para los datos de ejemplo, nov debe ser 27 en lugar de 24 ya que la suma total 32 menos dec (que es 5 ) es 27

 // month map const months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']; const array1 = ['jan','mar','dec','jan','sep','nov','mar'] const array2 = [3,5,5,4,5,8,2]; const result = months.reduce((sums, curMonth, i) => { if(array1.includes(curMonth)) { sums[curMonth] = array2.reduce((acc, value, index) => acc + (months.indexOf(array1[index]) <= i && value), 0); } return sums; }, {}); console.log(result); // get desired two arrays according to the result const array3 = Object.keys(result); const array4 = Object.values(result); console.log(array3); console.log(array4);

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