¿Cómo calcular la suma y el promedio de los elementos de una matriz? [duplicar]

Resuelto jonathan miller asked hace 12 años • 35 respuestas

Tengo problemas para agregar todos los elementos de una matriz y también para promediarlos. ¿Cómo haría esto e implementarlo con el código que tengo actualmente? Se supone que los elementos deben estar definidos como los tengo a continuación.

<script type="text/javascript">
//<![CDATA[

var i;
var elmt = new Array();

elmt[0] = "0";
elmt[1] = "1";
elmt[2] = "2";
elmt[3] = "3";
elmt[4] = "4";
elmt[5] = "7";
elmt[6] = "8";
elmt[7] = "9";
elmt[8] = "10";
elmt[9] = "11";

// Problem here
for (i = 9; i < 10; i++){
  document.write("The sum of all the elements is: " + /* Problem here */ + " The average of all the elements is: " + /* Problem here */ + "<br/>");
}   

//]]>
</script>
jonathan miller avatar Apr 28 '12 08:04 jonathan miller
Aceptado

Una solución que considero más elegante:

const sum = times.reduce((a, b) => a + b, 0);
const avg = (sum / times.length) || 0;

console.log(`The sum is: ${sum}. The average is: ${avg}.`);
Sergi Mansilla avatar May 16 '2012 18:05 Sergi Mansilla

ES6

const average = arr => arr.reduce( ( p, c ) => p + c, 0 ) / arr.length;
    
const result = average( [ 4, 4, 5, 6, 6 ] ); // 5
    
console.log(result);
Expandir fragmento

Abdennour TOUMI avatar Aug 14 '2013 14:08 Abdennour TOUMI
var sum = 0;
for( var i = 0; i < elmt.length; i++ ){
    sum += parseInt( elmt[i], 10 ); //don't forget to add the base
}

var avg = sum/elmt.length;

document.write( "The sum of all the elements is: " + sum + " The average is: " + avg );

Simplemente repita la matriz, dado que sus valores son cadenas, primero deben convertirse a un número entero. Y el promedio es solo la suma de valores dividida por el número de valores.

Marcus Recck avatar Apr 28 '2012 01:04 Marcus Recck