Naf*_*iaz 0 javascript ecmascript-6
首先,我创建了一个普通函数来获取数组元素的总和 [1,2,3,4,5,6,7,8,9],它可以工作,我得到 45 作为输出。之后我有使用 map() 方法尝试相同的逻辑,以便我可以将总和结果放入数组中。但在 map() 方法中,它没有给我所有数组元素的总和,而是给了我这个输出 [1,3,5,7,9,11,13]。如果我在构建逻辑时犯了任何错误,可以请向我解释一下,如果我想使用 map() 方法来添加数组元素,那么逻辑是什么。下面我附上了代码。
//normal function to get the sum of array numbers
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
function add(nums) {
let sum = 0;
for (const num of nums) {
sum = sum + num;
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
console.log(添加(数组));
//map() method
const numbers = [1, 2, 3, 4, 5, 6, 7];
let add = numbers.map((num, sum = 0) => sum = sum + num);
console.log(add);
Run Code Online (Sandbox Code Playgroud)
你不能用 求和map。map始终返回一个具有相同长度的新数组。
你想使用reduce
const numbers = [1, 2, 3, 4, 5, 6, 7];
const result = numbers.reduce((sum, num) => sum + num);
console.log(result);Run Code Online (Sandbox Code Playgroud)
正如TJ Crowder在评论中建议的那样,如果数组为空,跳过第二个参数可能会导致失败
const numbers = [];
const result = numbers.reduce((sum, num) => sum + num);
console.log(result);Run Code Online (Sandbox Code Playgroud)
所以如果可以的话最好使用它
const numbers = [];
const result = numbers.reduce((sum, num) => sum + num, 0);
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7539 次 |
| 最近记录: |