Options
All
  • Public
  • Public/Protected
  • All
Menu

List<T> 类

Hierarchy

  • List

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

有序的可迭代集合。 在TypeScript中,它是一个通用类,在编译时强制执行可能添加到List中的元素类型

用法示例:

  var list = new go.List();  // or in TypeScript: new go.List<go.Point>();
  list.add(new go.Point(0, 0));
  list.add(new go.Point(20, 10));
  list.add(new go.Point(10, 20));
  // now list.length === 3
  // and list.elt(1) instanceof go.Point

你可以遍历List中的项目:

  var it = aList.iterator;
  while (it.next()) {
    console.log("#" + it.key + " is " + it.value);
  }

或者:

  aList.each(function(val) {
    console.log(val);
  });

key的范围从0到 count-1.

为了方便起见,此GoJS List 类具有以下方法和属性:

现在,构造函数采用一个可选的Iterable或者Array参数,该参数为新List提供了初始元素。

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

Type parameters

  • T

Implements

Index

Constructors

constructor

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

    new go.List(), 用于 JavaScript

    new go.List<type>() 用于 TypeScript, 以强制进行类型检查

    典型用法是:

      var list = new go.List();  // keep a list of GraphObjects

    Parameters

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

      要添加的项的可选集合

    Returns List

Properties

Read-only count : number

  • 此只读属性是List的长度

Read-only iterator : Iterator<T>

  • 获取可用于遍历List的对象。key的范围是从0到count-1的整数。该值将是列表中该索引处的项目。典型用法:

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

Read-only iteratorBackwards : Iterator<T>

  • 获取一个对象,可以使用该对象以向后的顺序遍历List。key的范围是从0到count-1的整数。该值将是列表中该索引处的项目。不能通过反向遍历来修改List。典型用法:

      var it = aList.iteratorBackwards;
      while (it.next()) {
        . . . 'key: ' + it.key + ' value: ' + it.value . . .
      }

Read-only length : number

  • 此只读属性是List的长度,它是 count 属性的同义词

Read-only size : number

  • 此只读属性是List的长度

Methods

add

  • add(val: T): List<T>
  • 将给定的值添加到List的末尾

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

    Parameters

    • val: T

    Returns List<T>

    修改后的List

addAll

  • 将集合的所有值添加到此List的末尾

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

    Parameters

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

      要添加的项目集合

    Returns List<T>

    修改后的List

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
  • 清除List。 这会将 count 设置为0

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

    Returns void

contains

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

    Parameters

    • val: T

      要检查的值

    Returns boolean

    该值是否包含在List中

Virtual copy

  • 对此List进行浅拷贝。这些值不会被复制,因此,如果它们是对象,则可以继续与原始List共享

    Returns List<T>

    具有相同元素的新List

delete

  • delete(val: T): boolean
  • 从List中删除给定值(如果找到)

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

    Parameters

    • val: T

      要删除的值

    Returns boolean

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

Virtual each

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

    since

    1.4

    Parameters

    • func: function(a: T): void

      此函数不可以修改集合

    Returns List<T>

    此List本身

elt

  • elt(i: number): T
  • 返回给定索引处的元素

    Parameters

    • i: number

      要返回的元素的索引

    Returns T

    给定索引处的值

first

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

    Returns T | null

    如果List中没有项目,则返回null

get

  • get(i: number): T
  • 返回给定索引处的元素

    Parameters

    • i: number

      要返回的元素的索引

    Returns T

    给定索引处的值

has

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

    Parameters

    • val: T

      要检查的值

    Returns boolean

    该值是否包含在List中

indexOf

  • indexOf(val: T): number
  • 返回给定值的索引(如果它在此List中)

    Parameters

    • val: T

      要检查的值

    Returns number

    如果值不在此List中,则返回-1

insertAt

  • insertAt(i: number, val: T): void
  • 在索引i之前插入一个值

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

    Parameters

    • i: number

      之前要插入的索引

    • val: T

      插入的值

    Returns void

last

  • last(): T | null
  • 返回List中的最后一项,如果没有则返回null

    since

    1.5

    Returns T | null

    如果List中没有项目,则返回null

pop

  • pop(): T | null
  • 返回List中的最后一项并将其从List中删除,如果不存在,则仅返回null。 使用 add 将项目添加到List的末尾 使用 last 获取最后一项,而不会减少List的长度

    since

    1.5

    Returns T | null

    如果List中没有项目,则返回null

push

  • push(val: T): void
  • 将给定值添加到List的末尾

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

    Parameters

    • val: T

    Returns void

remove

  • remove(val: T): boolean
  • 从List中删除给定值(如果找到)

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

    Parameters

    • val: T

      要删除的值

    Returns boolean

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

removeAt

  • removeAt(i: number): void
  • 从List中删除给定索引处的值

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

    Parameters

    • i: number

      要删除的索引

    Returns void

removeRange

  • removeRange(from: number, to: number): List<T>
  • 给定从0开始的索引和从0结束的索引,从List中删除一个值范围,例如

    list.removeRange(2, 4)

    将从List中删除元素2, 3, 和 4。 如果List中有两个或更少的元素开始,则该List不变, 如果 from 大于 to, 则该List不变, 如果 from 大于或等于长度,则该List不变, 如果 to 小于0,则该List不变

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

    Parameters

    • from: number

      要删除的范围的起始索引,负值视为0

    • to: number

      要删除的范围的结束索引,大于List长度的值被视为引用最后一个元素

    Returns List<T>

    This modified List

reverse

  • reverse(): List<T>
  • 反转此List中项目的顺序

    Returns List<T>

    修改后的List

set

  • set(i: number, val: T): void
  • 将给定索引处的元素设置为给定值

    Parameters

    • i: number

      要设置元素的索引

    • val: T

      在索引处设置的值

    Returns void

setElt

  • setElt(i: number, val: T): void
  • 将给定索引处的元素设置为给定值

    Parameters

    • i: number

      要设置元素的索引

    • val: T

      在索引处设置的值

    Returns void

sort

  • sort(sortfunc: function(a: T, b: T): number): List<T>
  • 根据比较函数对列表进行排序

    Parameters

    • sortfunc: function(a: T, b: T): number

      此函数在List中传递了两项,如果它们相等,则返回0,如果第一个值在第二个值之前,则返回小于0,如果第一个值在第二个值之后,则返回大于0

    Returns List<T>

    修改后的List

toArray

  • toArray(): Array<T>
  • 根据此List的内容生成一个JavaScript数组

    Returns Array<T>

    数组形式的List的副本

toSet

  • toSet(): Set<T>
  • 将List转换为 Set。 如果删除了任何重复项,则结果集的数量可能小于此List的数量

    Returns Set<T>

    此List内容的副本,但已删除重复的内容并丢失了顺序