Javascript中reduce回调中的第二个参数
2nd argument in reduce callback in Javascript
var reverse = function (list) {
return list.reduce(function (reversedList, current) {
return [ current ].concat(reversedList);
}, []);
};
console.log(reverse([1,2,3,4]));
所以这是为了使用reduce在Javascript中反转数组。根据MDNs参考。如果没有提供initialValue,则第二个参数(此处为current)是数组第一个元素之后的第二个元素。但在这种情况下,电流不是阵列的第二个元素,而是阵列的最后一个元素。为什么会这样?
您可以在控制台上为某些数组[1、2、3、4]运行此代码,当前将返回4。
执行以下操作时,您的代码正在创建一个包含当前项的新数组:[current]然后将"reversedList"数组连接在其后面。
var reverse = function (list) {
return list.reduce(function (reversedList, current) {
//this creates a new array with just the "current" item in it
//and then concatenates the "reversedList" array with it.
console.log("concatenating ", current, "with", reversedList);
return [ current ].concat(reversedList);
}, []);
};
console.log(reverse([1,2,3,4]));
这是一种奇怪的方式,但我认为这只是出于教育目的。您可以将每个项添加到数组的开头,而不是串联。
var reverse = function (list) {
return list.reduce(function (reversedList, current) {
reversedList.unshift(current);
return reversedList;
}, []);
};
console.log(reverse([1,2,3,4]));
也就是说,如果你只是想反转一个数组,你可以使用reverse()方法:
console.log([1,2,3,4].reverse());
相关文章:
- 当第二个参数为空时管理JavaScript调用的构造
- 筛选器's的第二个参数不起作用
- jQuery Datepicker BeforeShowDay 第二个参数
- 添加第二个参数时,Javascript函数将停止工作
- JavaScript 部分应用函数 - 如何仅绑定第二个参数
- 何时适合将集合传递给主干模型构造函数第二个参数
- 下划线.js : _.where() 使用第一个参数,但不适用于第二个参数
- 如何在setInterval函数中生成第二个参数(持续时间)的随机持续时间值
- 如何将jquery对象转移到“On”方法(第二个参数)
- 是否可以将值数组作为第二个参数传递给 _.without() 函数
- JSON.stringify()工作不正常-第二个参数消失
- 结合Supercrollorama,TweenMax.to中第二个参数的含义是什么
- 简单`replace()`的第二个参数存在问题
- retrieve()中的第二个参数;始终在运行
- Javascript中reduce回调中的第二个参数
- 可以't在addEventListener方法的第二个参数中添加括号
- 骨干路由器多参数;第二个参数未定义
- JavaScript中JSON.stringify中的第二个参数
- 如果第二个参数再次是替换方法,则JavaScript替换不起作用
- 如何在Mootools fireEvent函数的第二个参数中访问对象实例