我有一个任意长度的数组。我想计算交集。
我尝试以两种我认为等效的方式执行此操作,但它们产生不同的输出。
有什么区别:
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 -> []
?
有更好的方法吗?
最佳答案
这里不需要折叠。
下划线的intersection已经可以采用多个数组。
所以 _.intersection.apply(null, a)
或_.intersection([1,2,3,4,5],[4,5,6,7],[5,6,7,8])
会起作用的。
关于javascript - Underscore.js - 带交集的 Foldl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686906/