Quiero construir una función que
Por ejemplo, si llamo a esta función con la entrada [1,2,3,4], la salida debería ser [1,3,6,10]. Sin embargo, cuando ejecuto mi código, devuelve una matriz vacía.
El siguiente es el código que tengo hasta ahora.
function sumOfArray(nums) { var output = []; // tip: initialize like let output = [nums?.[0] ?? 0]; for(let i = 1 ; i < nums.length ; i++) { nums[i] = nums[i] + nums[i-1]; output.push(nums[i]); } return output; }; console.log( 'calling sumOfArray([1,2,3,4])', sumOfArray([1,2,3,4]) ); const input = [1,2,3,4] const theFunctionYouWannaWrite = (acc, v) => { acc.push(v + (acc[acc.length - 1] || 0)) return acc; } const output = input.reduce(theFunctionYouWannaWrite, []) console.log(output) si quieres usarlo con for
const input = [1,2,3,4] const theFunctionYouWannaWrite = (acc, v) => { acc.push(v + (acc[acc.length - 1] || 0)) return acc; } function sumOfArray(nums) { var output = []; for(let i = 0 ; i < nums.length ; i++) { theFunctionYouWannaWrite(output, nums[i]) } return output; }; console.log(sumOfArray(input))Simplemente agregue el primer elemento en la inicialización de la matriz y todo funciona bien.
function sumOfArray(nums) { var output = [nums[0]]; // tip: initialize like let output = [nums?.[0] ?? 0]; for(let i = 1 ; i < nums.length ; i++) { nums[i] = nums[i] + nums[i-1]; output.push(nums[i]); } return output; }; console.log( 'calling sumOfArray([1,2,3,4])', sumOfArray([1,2,3,4]) ); let sum = 0, nums = [1, 2, 3, 4], res = []; nums.forEach((item, index, arr) => { sum += arr[index]; res.push(sum); }); console.log(res);