javascript - 结合数组的长度,为什么它返回NaN? JavaScript

标签 javascript arrays

信息:嗨,您可以看到有 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/

相关文章:

java - ArrayList 重用单个对象,而不是创建新对象

javascript - 根据过滤后的对象数组中的数据创建新的对象数组

javascript - 按钮点击没有反应

javascript - 在一页中加载 100 张图像的最佳方法?

javascript - AngularJS : How to bind data to a Directive?

php - stdClass 类的对象无法转换为字符串

ios - 使用 Swift 对两个数组进行排序

python - 如何在 Tkinter 中将二维数组从一个类传递到另一个类?

javascript - 将 Promise 与循环和嵌套函数一起使用

javascript - 动态创建的输入类型=文件在 PHP 中不起作用?