gpt4 book ai didi

javascript - Javascript 中减少回调的第二个参数

转载 作者:行者123 更新时间:2023-12-02 15:21:21 24 4
gpt4 key购买 nike

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] 运行此代码,并且当前将返回 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 - Javascript 中减少回调的第二个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com