类:集合

ol/Collection~集合


import Collection from 'ol/Collection.js';

标准JavaScript数组的扩展版本,增加了便捷的操作方法。对集合的添加和删除操作会触发集合事件。请注意,这不涵盖集合内部(内部)对象的更改;这些更改会在相应对象上触发事件,而非在整个集合上。

new Collection(array, options)

Name Type 描述
array Array.<T> | undefined

数组.

options

Collection options.

Name Type 描述
unique boolean (defaults to false)

禁止向集合中添加重复项。

触发事件:

继承

可观察属性

Name Type 可设置 ObjectEvent type 描述
length number change:length

数组的长度。

方法

递增修订计数器并触发'change'事件。

从集合中移除所有元素。

dispatchEvent(event){boolean | undefined} inherited

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

Name Type 描述
event BaseEvent | string

事件对象。

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

extend(arr){Collection<T>}

向集合中添加元素。这会将提供的数组中的每个元素追加到集合的末尾。

Name Type 描述
arr Array.<T>

数组.

返回:
该集合。

forEach(f)

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

Name Type 描述
f function

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

获取值。

Name Type 描述
key string

键名。

返回:
值。

getArray(){Array.<T>}

获取对底层数组的引用。警告:若数组被修改,集合将不会触发任何事件,且集合的“length”属性将无法与数组的实际长度保持同步。

返回:
数组.

getKeys(){Array.<string>} inherited

获取对象属性名列表。

返回:
属性名称列表。

getLength(){number}

获取该集合的长度。

返回:
数组的长度。

getProperties(){Object.<string, *>} inherited

获取包含所有属性名称及其对应值的对象。

返回:
对象。

getRevision(){number} inherited

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

返回:
修订。

insertAt(index, elem)

在指定索引处插入元素。

Name Type 描述
index number

索引。

elem T

元素。

item(index){T}

获取指定索引的元素。

Name Type 描述
index number

索引。

返回:
元素。

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

监听特定类型的事件。

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数。

返回:
监听器的唯一键。若以事件类型数组作为首个参数调用,则返回键数组。

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

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

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数。

返回:
监听器的唯一键。如果以事件类型数组作为第一个参数调用,则返回将是键的数组。

pop(){T | undefined}

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

返回:
元素。

push(elem){number}

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

Name Type 描述
elem T

元素

返回:
该集合的新长度。

remove(elem){T | undefined}

从集合中移除首次出现的元素。

Name Type 描述
elem T

元素。

返回:
被删除的元素,若未找到则为未定义。

removeAt(index){T | undefined}

移除指定索引处的元素并返回该元素。若集合不包含该索引,则返回 undefined

Name Type 描述
index number

索引

返回:
值。

set(key, value, silent) inherited

设置值。

Name Type 描述
key string

键名。

value *

值。

silent boolean | undefined

更新而不触发事件。

setAt(index, elem)

在指定索引处设置元素。

Name Type 描述
index number

索引。

elem T

元素。

setProperties(values, silent) inherited

设置键值对集合。请注意,此操作将修改现有属性并添加新属性,且不会删除任何现有属性。

Name Type 描述
values Object.<string, *>

值。

silent boolean | undefined

在不触发事件的情况下更新。

un(type, listener) inherited

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

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数。

unset(key, silent) inherited

清除属性。

Name Type 描述
key string

键名。

silent boolean | undefined

取消设置且不触发事件。