[英]javascript array turns to be undefined
Input: nums = [1,2,3,4]
Output: [1,3,6,10]
Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4]
.输入:
nums = [1,2,3,4]
输出: [1,3,6,10]
解释:求和得到如下: [1, 1+2, 1+2+3, 1+2+3+4]
。
var runningSum = function(nums) {
const array = new Array (nums.length);
array[0] = nums[0];
for( let i=1; i<nums.length; i++){
array[i] = nums[i] + array[i-1]
}
};
the result turns out to be undefine, I don't know where I did wrong.结果是未定义的,我不知道我哪里做错了。
You have to return the array你必须返回数组
so所以
var runningSum = function(nums) {
const array = new Array (nums.length);
array[0] = nums[0];
for( let i=1; i<nums.length; i++){
array[i] = nums[i] + array[i-1]
}
return array;
};
instead of代替
var runningSum = function(nums) {
const array = new Array (nums.length);
array[0] = nums[0];
for( let i=1; i<nums.length; i++){
array[i] = nums[i] + array[i-1]
}
};
Here is another approach to solve the problem using recursion.这是使用递归解决问题的另一种方法。
const nums = [1, 2, 3, 4]; const runningSum = (arr, result = [], sum = 0) => { if (arr.length === 0) return result; const tmp = sum + arr.shift(); result.push(tmp); return runningSum(arr, result, tmp); }; console.log(runningSum(nums));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.