亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用“reduce”乘以數字數組時的未定義輸出

使用“reduce”乘以數字數組時的未定義輸出

喵喔喔 2021-12-02 16:20:04
當像這樣乘以數字數組時,我得到了預期的輸出: const numbers = [2, 5, 3]; return numbers.reduce((a, b) => a * b);但是,當我最初編寫我的 reduce 語句(如下所示)時,我得到了“未定義”的輸出。我認為這與我為 reduce 播種的值 0 有關。return numbers.reduce((a, b) => {      a * b;    }, 0);我不完全理解“未定義”作為輸出發生了什么。如果有人能在這方面啟發我,我將不勝感激。
查看完整描述

2 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

在第二種形式中,您{}在箭頭函數中使用花括號,它沒有隱式return. 如果使用花括號,您需要明確 return:


const numbers = [2, 5, 3];


const test = numbers.reduce((a, b) => {

   return a * b;

}, 0);


console.log(test);

編輯


正如在各種評論中指出的那樣,這解決了結果為 的問題undefined,但仍將是0因為您將初始值播種為0,并且0乘以任何事物0。您可以簡單地省略它(或用 替換它1)以獲取返回的數組中所有項目的乘積:


const numbers = [2, 5, 3];


const test = numbers.reduce((a, b) => {

   return a * b;

});


console.log(test);


查看完整回答
反對 回復 2021-12-02
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

您應該將 0 更改為 1,因為任何數字乘以 0 都是 0:

return numbers.reduce((a, b) => a * b, 1);


查看完整回答
反對 回復 2021-12-02
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號