我有一个任意长度的数组数组。我想计算交点。Underscore.js - foldl与交叉点
我试图用两种方式来做到这一点,我认为是等价的,但他们产生不同的输出。
之间有什么区别:
var a = [[1,2,3,4,5], [3, 4,5,6,7], [4,5,6,7,8]]
_.foldl(a, function(a, b) { return _.intersection(a, b) })
// Works as expected -> [4, 5]
这:
var a = [[1,2,3,4,5], [4,5,6,7], [5,6,7,8]]
_.foldl(a, _.intersection)
// Does not work -> []
?
有没有更好的方法来做到这一点?
,但我仍然好奇 - 我使用foldl的两个实现有什么区别? – joews
我不知道为什么第二个将无法正常工作。我尝试了'var func = function(a,b){return _.intersection(a,b)}'并调用'_.foldl(a,func)',它可以工作。我认为问题可能是'_.intersection'不知道要使用哪个参数,所以它使用'_.reduce'(备忘录,值,索引,列表)提供的所有四个参数,并且该列表使它不行。 – EmptyArsenal