Javascript 数组高阶函数

标签 javascript arrays higher-order-functions

谁能向我解释一下这段代码是如何工作的?我在数组中查找了 reduceconcat 函数,我理解这些函数,但我不明白这段代码最初是如何工作的:

var arrays = [[1, 2, 3], [4, 5], [6]];
    
console.log(arrays.reduce(function(flat, current) {
   return flat.concat(current);
}, []));
// → [1, 2, 3, 4, 5, 6]

最佳答案

事实上,这是 .reduce() 的错误使用。对于这项工作,您不需要初始数组。只需之前的 (p) 和当前的 (c) 交手就可以做到。如;

var arrays = [[1, 2, 3], [4, 5], [6]];
    
console.log(arrays.reduce((p,c) => p.concat(c)));

注意:当返回值的类型与数组项不同时,Initial 很方便。然而,在这种情况下,您正在处理数组并返回一个数组,该数组呈现初始冗余的使用。

关于Javascript 数组高阶函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630371/

相关文章:

javascript - Jquery通过单击公共(public)类获取元素的ID

python - 将 Numpy 数组插入 Mysql 数据库

c - C 中是否可以部分应用高阶函数?

javascript - 为什么这个函数有第二个参数在单独的括号中?

javascript - jquery scrolltop() 返回上一个滚动位置的值

Javascript 正则表达式验证密码字符串(转义标点符号)

javascript - 在iOS中阻止的Webview中的iframe内重定向

javascript - 循环遍历所有形状的数组时,Two.js 中的某些形状未被删除

python - 如何在 Python 中维护数据类型的同时将文件解析为二维数组?

c++ - 我可以使用不同类的函数参数创建高阶函数吗?