簡體   English   中英

如何將.reduce函數的輸出分配給變量?

[英]How do I assign my .reduce function output to a variable?

給定一個對象和一個鍵, getElementsThatEqual10AtProperty返回一個數組,該數組包含位於給定鍵處的等於10的數組的所有元素。

我想將.reduce方法輸出的內容分配給一個變量,然后在if語句中使用該變量。 我的代碼評估為NaN

function getElementsThatEqual10AtProperty(obj, key) {
  var arrayTotal = 0;
  obj[key].reduce(function(a,b){
    arrayTotal = a + b;
   });
  if(arrayTotal === 10) {
    return obj[key];
  }
};

您正在錯誤地reduce 您幾乎像Array#forEach一樣使用它。 請記住,回調是函數。 他們期望return一個實際值。

閱讀文檔時,您會發現reduce還需要一個accumulator ,這是回調之后的一個參數。

const sum = obj[key].reduce(function(a,b){
  return a + b
}, 0)

或者,如果您需要更新和更漂亮的版本:

const sum = obj[key].reduce((a,b) => a + b, 0)

當您有一個班輪時, return是隱式的,這意味着它是隱式的,而不是顯式的。

累加器是您的值開始時的總和。

Array.reduce(callback, accumulator)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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