Skip to content

集合运算

🌐 Set operations

适用于任何可迭代对象的逻辑集合运算。

🌐 Logical set operations for any iterable.

difference(可迭代对象, ...其他)

🌐 difference(iterable, ...others)

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

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

union(...可迭代对象)

🌐 union(...iterables)

来源 · 返回一个新的 InternSet,其中包含出现在任意给定 可迭代对象 中的每个(不同的)值。返回集合中值的顺序基于它们在给定 可迭代对象 中首次出现的顺序。

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

intersection(...iterables)

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

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

超集(a, b)

🌐 superset(a, b)

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

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

子集(a, b)

🌐 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