Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Set<T>

Hierarchy

  • Set

注意: 在2.0版本中 constructor 参数发生了变化。Set现在可以选择接受一个集合,并且只检查TypeScript中的类型。

一个无序的可迭代集合,不能包含两个具有相同值的实例。 在TypeScript中,它是一个通用类,在编译时强制执行可能添加到Set中的元素类型

用法示例:

  var set = new go.Set();  // In TypeScript: new go.Set<string>();
  set.add("orange");
  set.add("apple");
  set.add("orange");
  // now set.count === 2
  // and set.contains("orange") === true
  // and set.contains("banana") === false

你可以遍历Set中的项目:

  var it = aSet.iterator;
  while (it.next()) {
    . . . it.value . . .
  }

或者:

  aSet.each(function(val) {
      . . . val . . .
    });

尽管无法精确实现EcmaScript 6 Set 类的功能, 此GoJS Set 类具有以下方法和属性的同义词:

现在,构造函数接受一个可选的 Iterable 或 Array 参数,该参数为新Set提供了初始元素

请注意,GoJS迭代与ES6迭代完全不同,因此尚未使功能具有某种程度的兼容性。这些集合类是在ES6集合类被提出之前在GoJS中定义的。

Type parameters

  • T

Implements

Index

Constructors

constructor

  • 有两种可能的构造函数:

    new go.Set(), 用于JavaScript

    new go.Set<T>() 用于TypeScript

    在TypeScript中,可选的通用参数描述此Set可以保存的值的类型

    例如,表达式:

    // TypeScript:
    new go.Set<go.Point>()

    创建一个仅包含 Point 的新Set

    Parameters

    • Optional coll: Iterable<T> | Array<T>

      要添加的可选项目集合

    Returns Set

Properties

Read-only count : number

  • 此只读属性是Set中元素的数量

Read-only iterator : Iterator<T>

  • 获取可用于迭代Set的对象,该值将是Set的成员。典型用法:

      var it = aSet.iterator;
      while (it.next()) {
        . . . " value: " + it.value . . .
      }

Read-only size : number

  • 此只读属性是Set中元素的数量

Methods

add

  • add(val: T): Set<T>
  • 将给定值添加到Set(如果尚不存在)

    迭代集合时,请注意不要调用此方法

    Parameters

    • val: T

      要添加到Set中的值,不能为null

    Returns Set<T>

    修改后的Set

addAll

  • 将集合的所有值添加到此Set

    迭代集合时,请注意不要调用此方法

    Parameters

    • coll: Iterable<T> | Array<T>

      要添加的项目集合

    Returns Set<T>

    修改后的Set

Virtual all

  • all(pred: function(a: T): boolean): boolean
  • 如果对集合中所有的项调用给定函数都为true,则为true

    在集合中的每个项目上调用给定函数,一旦返回false时,将立即返回false,否则返回true。对于空集合它返回true

    since

    1.4

    Parameters

    • pred: function(a: T): boolean

      此函数不得有任何副作用

    Returns boolean

    如果所有函数调用为true,则为true,否则为false

Virtual any

  • any(pred: function(a: T): boolean): boolean
  • 如果对任意集合的项目调用给定函数为true,则为true

    在集合中的每个项目上调用给定函数,一次调用返回true,则返回true,否则返回false。对于空集合,它返回false

    since

    1.4

    Parameters

    • pred: function(a: T): boolean

      此函数不得有任何副作用

    Returns boolean

    如果任何函数调用为true,则为true,否则为false

clear

  • clear(): void
  • 清除Set。 这会将 count 设置为0

    迭代集合时,请注意不要调用此方法

    Returns void

contains

  • contains(val: T): boolean
  • 返回给定值是否在此Set中

    Parameters

    • val: T

      要检查的值

    Returns boolean

    该值是否包含在Set中

containsAll

  • containsAll(coll: Iterable<T>): boolean
  • 如果给定集合的所有值都在此Set中,则返回true

    Parameters

    • coll: Iterable<T>

      要检查的项目集合

    Returns boolean

containsAny

  • containsAny(coll: Iterable<T>): boolean
  • 如果给定集合的任何值在此Set中,则返回true

    Parameters

    • coll: Iterable<T>

      要检查的项目集合

    Returns boolean

Virtual copy

  • copy(): Set<T>
  • 对此Set进行浅拷贝。这些值不会被复制,因此,如果它们是对象,则可以继续与原始Set共享

    Returns Set<T>

    具有相同元素的新Set

delete

  • delete(val: T): boolean
  • 从Set中删除一个值(如果找到)

    迭代集合时,请注意不要调用此方法

    Parameters

    • val: T

      要插入的值

    Returns boolean

    如果找到并删除该值,则为true,否则为false

Virtual each

  • each(func: function(a: T): void): Set<T>
  • 在集合中的每个项目上调用给定函数

    since

    1.4

    Parameters

    • func: function(a: T): void

      此函数不得修改集合

    Returns Set<T>

    Set自身

first

  • first(): T | null
  • 返回集合中的第一项,如果没有,则返回null

    Returns T | null

    如果集合中没有任何项目,则返回null

has

  • has(val: T): boolean
  • 返回给定值是否在此Set中

    Parameters

    • val: T

      要检查的值

    Returns boolean

    该值是否包含在Set中

remove

  • remove(val: T): boolean
  • 从集合中删除一个值(如果找到)

    迭代集合时,请注意不要调用此方法

    Parameters

    • val: T

      要删除的值

    Returns boolean

    如果找到并删除该值,则为true,否则为false

removeAll

  • 从此Set中删除集合的所有值

    迭代集合时,请注意不要调用此方法

    Parameters

    • coll: Iterable<T> | Array<T>

      要删除的项目集合

    Returns Set<T>

    修改后的Set

retainAll

  • 从此Set中移除所有不在给定集合中的项目

    迭代集合时,请注意不要调用此方法

    Parameters

    • coll: Iterable<T>

      此Set中应保留的项目的集合

    Returns Set<T>

    修改后的Set

toArray

  • toArray(): Array<T>
  • 从此Set的内容中产生一个JavaScript数组

    Returns Array<T>

    数组形式的Set的副本

toList

  • 将Set转换为 List。 由于Set内没有排序,因此List中的值可以按任何顺序排列

    Returns List<T>

    此Set内容的List形式的副本