跳至内容

集合操作

任何可迭代对象的逻辑集合操作。

difference(iterable, ...others)

源代码 · 返回一个新的 InternSet,包含 iterable 中所有不在任何 others 可迭代对象中的值。

js
d3.difference([0, 1, 2, 0], [1]) // Set {0, 2}

union(...iterables)

源代码 · 返回一个新的 InternSet,包含所有出现在给定 iterables 中的(不同)值。返回的集合中值的顺序基于它们在给定 iterables 中的首次出现。

js
d3.union([0, 2, 1, 0], [1, 3]) // Set {0, 2, 1, 3}

intersection(...iterables)

源代码 · 返回一个新的 InternSet,包含所有出现在给定 iterables 中的(不同)值。返回的集合中值的顺序基于它们在给定 iterables 中的首次出现。

js
d3.intersection([0, 2, 1, 0], [1, 3]) // Set {1}

superset(a, b)

源代码 · 如果 ab 的超集,则返回 true:如果给定可迭代对象 b 中的每个值也出现在给定可迭代对象 a 中。

js
d3.superset([0, 2, 1, 3, 0], [1, 3]) // true

subset(a, b)

源代码 · 如果 ab 的子集,则返回 true:如果给定可迭代对象 a 中的每个值也出现在给定可迭代对象 b 中。

js
d3.subset([1, 3], [0, 2, 1, 3, 0]) // true

disjoint(a, b)

源代码 · 如果 ab 是不相交的,则返回 true:如果 ab 不包含任何共享值。

js
d3.disjoint([1, 3], [2, 4]) // true