let notas = [3, 7, 4, 8, 6, 5, 9, 2]; // con forEach recorremos todos los valores del array notas.forEach(function (valor) { console.log(valor); }) let suma = 0; notas.forEach(function (valor) { suma += valor; }) console.log(suma) // Imprimir las notas que están posiciones pares notas.forEach(function (valor, indice) { if (indice % 2 == 0) { console.log(valor); } }) // Puedo usar una función que ya exista notas.forEach(mostrar); function mostrar(valor){ console.log(valor); } let notasDuplicadas=notas.map(function(valor){ return valor*2; }) console.log(notas); console.log(notasDuplicadas); let notasMitad=notas.map((valor)=>valor/2); console.log(notas); console.log(notasMitad); let numeros=[1,2,3]; let ndoble=duplicar(numeros); console.log(ndoble); console.log(numeros) let juanito=numeros; // Esto no es una copia del array juanito[1]=17; // Si modifico el array nuevo modifico el original console.log(numeros) // numeros ha cambiado // Esta función me está modificando el array que le pasamos // Esto ocurre porque los arrays se pasan por referencia function duplicar(tabla){ for(let i=0;i<tabla.length;i++){ tabla[i]*=2; } return tabla; } let a=3; let b=doble(a); console.log(a) console.log(b) function doble(numero){ numero*=2; return numero; } let notas=[1,2,3,4,5]; let suma=sumaTabla(notas); console.log(suma); // Esto lo hace bien console.log(notas); // Pero destruye el array original // Esto me suma el array pero lo destruye function sumaTabla(tabla){ let suma=0; while(tabla.length>0){ suma+=tabla.pop(); } return suma; } function sumaTablaSinDestruir(tabla){ // Antes de modificar el array hago una copia del mismo let copia=[...tabla]; let suma=0; while(copia.length>0){ suma+=copia.pop(); } return suma; }