![](/img/trans.png)
[英]Using reduce to get sum of all numbers in an array in javascript
[英]Trying to get all numbers sum form an array by map() method
起初我已經做了一個普通的 function 來得到數組元素的總和 [1,2,3,4,5,6,7,8,9] 並且它工作我得到了 45 作為 output.. 之后我有使用 map() 方法嘗試了相同的邏輯,這樣我就可以將總和結果放入一個數組中。 但是在 map() 方法中,它沒有給我所有數組元素的總和,而是給了我這個 output [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;
}
控制台日志(添加(數組));
//map() method
const numbers = [1, 2, 3, 4, 5, 6, 7];
let add = numbers.map((num, sum = 0) => sum = sum + num);
console.log(add);
您不能與map
。 map
總是返回一個具有相同長度的新數組。
你想使用reduce
const numbers = [1, 2, 3, 4, 5, 6, 7]; const result = numbers.reduce((sum, num) => sum + num); console.log(result);
正如TJ Crowder在評論中建議的那樣,如果數組為空,則跳過第二個參數可能會導致失敗
const numbers = []; const result = numbers.reduce((sum, num) => sum + num); console.log(result);
所以如果可以的話最好使用它
const numbers = []; const result = numbers.reduce((sum, num) => sum + num, 0); console.log(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.