簡體   English   中英

結合數組長度,為什么返回NaN? 的JavaScript

[英]Combining length of arrays, why is it returning NaN? JavaScript

信息:嗨,您可以看到有4個數組,然后是其中包含這些數組的數組。 我正在使用_.reduce來增加數組的長度。 當我使用數組數組調用函數時,我得到了NaN。 我希望得到19。

為什么是這樣? 感謝幫助

var array1 = [[1],[2],[3],[4],[5]];
var array2 = ["a", "b"];
var array3 = [{name : "John"}, {age : 21}];
var array4 = [1,2,3,4,5,6,7,8,9,0];

var array5 = [array4, array3, array2, array1];

var arrayComboLength = function(array){
return _.reduce(array, function(a,b){
    return a.length + b.length;
});
}


console.log(arrayComboLength(array5));  --> // NaN

reduce的回調的第一個參數是累加器。 您正在訪問數字的length ,結果為undefined 然后將undefined添加到作為其余數組長度的數字上,這將導致undefined

var arrayComboLength = function(array) {
  return _.reduce(array, function(a, b) {
    return a + b.length;
  }, 0);
}

這與文檔http://underscorejs.org/#reduce中給出的示例非常接近

計數函數將遞歸應用於數組的所有元素。 例如,遞歸地將它們也應用於array4中的標量值。 標量值沒有長度。

暫無
暫無

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

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