Class: Collection

ol/Collection~Collection


import Collection from 'ol/Collection.js';

标准 JS Array 的扩展版本,添加了便捷的操纵方法。向 Collection 添加或移除元素会触发 Collection 事件。请注意,这不涵盖 Collection 内部对象的更改;它们会在相应对象上触发事件,而不是在整个 Collection 上触发。

new Collection(array, options)

Name Type Description
array Array.<T> | undefined

数组。

options

Collection 选项。

Name Type Description
unique boolean (defaults to false)

禁止将同一项添加到集合两次。

触发事件:

Extends

Observable Properties

Name Type Settable ObjectEvent type Description
length number no change:length

数组的长度。

Methods

增加修订计数器并分发 'change' 事件。

从集合中移除所有元素。

dispatchEvent(event){boolean | undefined} inherited

分发事件并调用所有监听此类型事件的监听器。事件参数可以是字符串或带有 type 属性的对象。

Name Type Description
event BaseEvent | string

事件对象。

返回值:
false 如果有人在事件对象上调用了 preventDefault,或者任何监听器返回了 false。

extend(arr){Collection<T>}

向集合添加元素。这将把提供的数组中的每个项目推送到集合的末尾。

Name Type Description
arr Array.<T>

数组。

返回值:
此集合。

forEach(f)

遍历每个元素,调用提供的回调函数。

Name Type Description
f function

对每个元素调用的函数。该函数接受 3 个参数(元素、索引和数组)。返回值将被忽略。

获取一个值。

Name Type Description
key string

键名。

返回值:
值。

getArray(){Array.<T>}

获取底层 Array 对象的引用。警告:如果数组被修改,集合不会分发任何事件,且集合的 "length" 属性将与数组的实际长度不同步。

返回值:
数组。

getKeys(){Array.<string>} inherited

获取对象属性名称列表。

返回值:
属性名称列表。

getLength(){number}

获取此集合的长度。

返回值:
数组的长度。

getProperties(){NoInfer.<Properties>} inherited

获取所有属性名称和值的对象。

返回值:
对象。

getRevision(){number} inherited

获取此对象的版本号。每次对象被修改时,其版本号都会递增。

返回值:
修订版本号。

insertAt(index, elem)

在提供的索引处插入元素。

Name Type Description
index number

索引。

elem T

元素。

item(index){T}

获取提供的索引处的元素。

Name Type Description
index number

索引。

返回值:
元素。

on(type, listener){EventsKey | Array<EventsKey>} inherited

监听特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键数组。

once(type, listener){EventsKey | Array<EventsKey>} inherited

监听一次特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键数组。

pop(){T | undefined}

移除集合的最后一个元素并返回它。如果集合为空则返回 undefined

返回值:
元素。

push(elem){number}

将提供的元素插入到集合的末尾。

Name Type Description
elem T

元素。

返回值:
集合的新长度。

remove(elem){T | undefined}

从集合中移除元素的第一个匹配项。

Name Type Description
elem T

元素。

返回值:
移除的元素,如果未找到则返回 undefined。

removeAt(index){T | undefined}

移除提供的索引处的元素并返回它。如果集合不包含此索引则返回 undefined

Name Type Description
index number

索引。

返回值:
值。

set(key, value, silent) inherited

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

setAt(index, elem)

在提供的索引处设置元素。

Name Type Description
index number

索引。

elem T

元素。

setProperties(values, silent) inherited

设置一组键值对。请注意,这会更改任何现有属性并添加新属性(不会移除任何现有属性)。

Name Type Description
values Partial.<NoInfer.<Properties>>

值。

silent boolean | undefined

更新但不触发事件。

un(type, listener) inherited

取消监听特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

unset(key, silent) inherited

取消设置一个属性。

Name Type Description
key string

键名。

silent boolean | undefined

取消设置但不触发事件。