给定一个整数数组,将这个数字和它后面的所有数字相加
Posted
技术标签:
【中文标题】给定一个整数数组,将这个数字和它后面的所有数字相加【英文标题】:Given an array of integer numbers, sum this number and all numbers that after it 【发布时间】:2022-01-04 16:23:54 【问题描述】:最后我得到数字,如何将其转换为数组?
例子:
输入:4、5、1、2、3、-2
输出:[(13, 9, 4, 3, 1, -2)];
function sumNumbers(numbersList)
const data = numbersList.forEach((item, index) =>
const output = numbersList.reduce(
(acc, c, i) => (index !== i ? (acc += c) : c),
0
);
console.log(result);
return output;
);
return data;
sumNumbers([4, 5, 1, 2, 3, -2]);
【问题讨论】:
.forEach()
不返回任何内容,因此“忽略”return main
【参考方案1】:
考虑将Array.prototype.forEach
替换为Array.prototype.map
(因为我们希望返回值)
function sumNumbers(numbersList)
const main = numbersList.map((item, index) =>
const result = numbersList.reduce(
(acc, c, i) => (index !== i ? (acc += c) : c),
0
);
return result;
);
return main;
console.log(sumNumbers([4, 5, 1, 2, 3, -2]))
说明:
.forEach
返回未定义 (docs)
而.map
返回“一个新数组,其中每个元素都是回调函数的结果。” (docs)
【讨论】:
@Andreas 感谢您的回答,这对我帮助很大!我很感激!【参考方案2】:@tibebes-m 给出的响应,另一种方法(降低复杂度)是向后迭代数组,并且仅使用 reduce 函数(无映射)
const sumNumbers = (list) => list
.reverse()
.reduce((acc, next, index) =>
acc.unshift(next + (acc[0] || 0));
return acc;
, []);
console.log(sumNumbers([4, 5, 1, 2, 3, -2]));
【讨论】:
以上是关于给定一个整数数组,将这个数字和它后面的所有数字相加的主要内容,如果未能解决你的问题,请参考以下文章
java 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
java 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
java 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
java 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。