Soy realmente nuevo en JavaScript, así que disculpe si esta pregunta puede parecer un poco decepcionante.
Estoy tratando de escribir una función que realice lo siguiente:
1. acepta una única matriz de números y devuelve la suma de los números de la matriz. 2. Si está vacío, devuelve 0.
let num3 = function sumNumbers([index]) { if (index != "number") { return 0; } else { [index].reduce((a, b) => a + b, 0) } } num3(1, 2, 3);Sin embargo, estoy recibiendo este error:
Uncaught TypeError: number 1 is not iterable (cannot read property Symbol(Symbol.iterator)) at sumNumbers (main.js:16:31) at main.js:25:1¿Alguien sabe la solución? realmente lo apreciaría :)
Puede iterar sobre la matriz usando un bucle for e incrementar la sum en cada iteración y finalmente devolverla.
Si no hay números en la matriz, la función devolverá el valor inicial de sum , que es 0 .
function addNums(nums) { let sum = 0; for (let i = 0; i < nums.length; i++) { sum += nums[i]; } return sum; } console.log(addNums([1, 2, 3])); console.log(addNums([]));También puede usar Array.prototype.reduce y hacer el cálculo en un solo paso.
const addNums = (nums) => nums.reduce((s, n) => s + n, 0); console.log(addNums([1, 2, 3])); console.log(addNums([]));