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