gpt4 book ai didi

javascript - 使用 _.each 编写下划线 _.reduce 方法

转载 作者:行者123 更新时间:2023-12-03 09:14:52 25 4
gpt4 key购买 nike

我正在练习重写underscore库中的reduce方法。

我想这样做,如果没有传递起始值,第一个元素将用作累加器,并且永远不会传递给迭代器。

我已经把它写到下面了。不知道如何使第一个元素不传递给迭代器。感谢任何评论。

  _.reduce = function(collection, iterator, accumulator) {
if(arguments.length == 2) accumulator = collection[0];
_.each(collection, function(el){
accumulator = iterator(accumulator, el);
})
return accumulator;
};

最佳答案

这就是 _.first_.rest 派上用场的地方:

_.reduce = function (collection, iterator, accumulator) {
if (arguments.length == 2) {
accumulator = _.first(collection);
collection = _.rest(collection);
}
_.each(collection, function (el) {
accumulator = iterator(accumulator, el);
})
return accumulator;
};

关于javascript - 使用 _.each 编写下划线 _.reduce 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983326/

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