javascript - Underscore.js - 带交集的 Foldl

标签 javascript underscore.js fold

我有一个任意长度的数组。我想计算交集。

我尝试以两种我认为等效的方式执行此操作,但它们产生不同的输出。

有什么区别:

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/

相关文章:

string - 在 SML 中使用 foldr 连接字符串

python - 如何在 python 中展平列表的嵌套列表?

list - 在有限集上定义一个类似于 "arg max"的函数,并证明它的一些属性,并避免通过列表绕道而行

Javascript 模块设计

javascript - 在 php 中将表单提交给自身后,表单重置按钮不起作用

javascript - document.open 删除所有窗口监听器

javascript - FindAll 包含涉及复杂的多对(多对多)关系(sequelizejs)

javascript - Backbone.js 未捕获下划线模板的引用错误

javascript - 在不知道对象数组格式的情况下从对象数组获取键值数组(Javascript)?

javascript - 在 Angular Controller 中使用下划线