簡體   English   中英

試圖通過 map() 方法從數組中獲取所有數字的總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM