信息:嗨,您可以看到有 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
回调的第一个参数是累加器。您正在访问数字的长度
,这会导致未定义
。然后将 undefined
添加到其余数组长度的数字中,从而导致 undefined
。
var arrayComboLength = function(array) {
return _.reduce(array, function(a, b) {
return a + b.length;
}, 0);
}
这与文档 http://underscorejs.org/#reduce 中给出的示例非常接近
关于javascript - 结合数组的长度,为什么它返回NaN? JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189199/