tengo una matriz
const array = [6,2,6,7,5,9]; Quiero la suma de todos los números hasta el 7 en una matriz
Intenté .reduce pero me dio la suma de toda la matriz. ¿Cómo puedo hacer eso?
Vas a tener que pasar por muchos aros con reduce . Necesitaría encontrar el índice de 7 , luego splice hasta ese índice y luego reduce sobre la matriz empalmada. Muy complicado!
Es mucho más simple crear una variable de sum y recorrer la matriz . Agregue cada número a la suma, y cuando el número sea 7 , rompa el ciclo.
Vale la pena señalar que esta estrategia no funcionaría para números duplicados como 6 , por ejemplo, porque ¿cuál 6 elegirías?
const arr = [6, 2, 6, 7, 5, 9]; let sum = 0; for (const n of arr) { sum += n; if (n === 7) break; } console.log(sum);Esto es factible con solo un bucle for:
const array = [6, 2, 6, 7, 5, 9]; let sum = 0; for (let i = 0; i < array.length; i++) { sum += array[i]; if (array[i] == 7) break; } // outputs the sum of [6,2,6,7], which is 21 console.log(sum);Aquí tomamos la suma de números hasta 7 como la suma de todos los números en nuestra matriz hasta la primera instancia de 7.
Aquí tienes,
const array = [6, 2, 6, 7, 5, 9]; const found = array.find(element => element >= 7); const newArr = array.indexOf(found); const arr1 = array.slice(0,(newArr + 1)); const sum = 0; const result = arr1.reduce( (previousValue, currentValue) => previousValue + currentValue, sum ); console.log(result); //output 21