【发布时间】:2010-12-15 22:36:05
【问题描述】:
让A 和B 为两组。我正在寻找真正快速或优雅的方法来计算它们之间的集合差异(A - B 或 A \B,取决于您的偏好)。正如标题所说,这两个集合作为 Javascript 数组存储和操作。
注意事项:
- Gecko 特有的技巧还可以
- 我更喜欢坚持使用本机函数(但如果轻量级库更快,我愿意使用它)
- 我见过,但未经测试,JS.Set(见上一点)
编辑:我注意到关于包含重复元素的集合的评论。当我说“集合”时,我指的是数学定义,这意味着(除其他外)它们不包含重复元素。
【问题讨论】:
-
您使用的“设置差异”术语是什么?是来自 C++ 还是什么?
-
你的套装里有什么?根据您的目标类型(例如数字),计算一组差异可以真正快速而优雅地完成。如果您的集合包含(比如说)DOM 元素,您将陷入缓慢的
indexOf实现。 -
@Crescent:我的集合包含数字 - 抱歉没有指定。 @Josh:这是数学中的标准集合运算 (en.wikipedia.org/wiki/Set_%28mathematics%29#Complements)
-
@JoshStodola 那是mathematical notation for set difference
-
@MattBall 不,我看到了。但是乔希的问题是有效的,没有答案,所以我回答了:)
标签: javascript arrays set-difference