gpt4 book ai didi

javascript - 下划线减少,关于备忘

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:51 25 4
gpt4 key购买 nike

根据文档 underscore-reduce我应该传递三个参数。

例如:

var m = _.reduce([1,2,3], function (memo, num) {return (num * 2) +memo }, 0);
m; // 12 as expected

如果我尝试只传递前两个参数,我会得到不同的值。为什么?

var m = _.reduce([1,2,3], function (memo, num) {return (num * 2) +memo });
m; // 11 ..why?

最佳答案

只有两个参数传入 reduce ,它将使用第一个和第二个数组项作为第一个函数调用的参数。

function addDouble(memo, num) {return (num * 2) +memo }

[1,2,3].reduce(addDouble, 0)
// is equivalent to
addDouble(addDouble(addDouble(0, 1), 2), 3)

[1,2,3].reduce(addDouble)
// is equivalent to
addDouble(addDouble(1, 2), 3)

通常您会传递起始值,但是许多操作在没有 identity element 的情况下开始时具有相同的结果。 .例如:

function add(a, b) { return a+b; }
function double(a) { return 2*a; }

[1,2,3].map(double).reduce(add) == [1,2,3].map(double).reduce(add, 0)

另请参阅 native reduce() 的文档.

关于javascript - 下划线减少,关于备忘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760173/

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