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 ref。如果没有提供 initialValue,则第二个参数(此处 current)是数组第一个元素之后的第二个元素。但在这种情况下,当前不是第二个元素而是数组的最后一个元素。为什么会这样?
您可以 运行 控制台上的此代码用于某个数组 [1,2,3,4] 并且 current 将返回 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());
var reverse = function (list) {
return list.reduce(function (reversedList, current) {
return [ current ].concat(reversedList);
}, []);
};
console.log(reverse([1,2,3,4]));
所以这是为了使用 reduce 反转 Javascript 中的数组。根据MDNs ref。如果没有提供 initialValue,则第二个参数(此处 current)是数组第一个元素之后的第二个元素。但在这种情况下,当前不是第二个元素而是数组的最后一个元素。为什么会这样?
您可以 运行 控制台上的此代码用于某个数组 [1,2,3,4] 并且 current 将返回 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());