var reverse = function (list) {
return list.reduce(function (reversedList, current) {
return [ current ].concat(reversedList);
}, []);
};
console.log(reverse([1,2,3,4]));
所以这是用于在Javascript中使用reduce来反转数组。根据{{3}}。如果没有提供 initialValue ,则第二个参数(此处为当前)是数组第一个元素之后的第二个元素。但在这种情况下,电流不是第二个元素,而是数组的最后一个元素。为什么会这样?
您可以在控制台上运行此代码,以便某些阵列[1,2,3,4]和当前将返回4。
答案 0 :(得分:1)
当您执行此操作时,您的代码正在创建一个包含当前项目的新数组:[current] 然后在它之后连接“reversedList”数组。
$ make Exercice_4.19
g++ -std=c++11 -Wall Exercice_4.19.cpp -o Exercice_4.19
这是一种奇怪的方式,但我认为这只是为了教育目的。您可以将每个项目添加到数组的开头而不是连接。
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]));
那就是说,如果你只是试图反转一个数组,你可以使用reverse()方法:
var reverse = function (list) {
return list.reduce(function (reversedList, current) {
reversedList.unshift(current);
return reversedList;
}, []);
};
console.log(reverse([1,2,3,4]));