Realm集合

包含Realm.ListRealm.Results共享方法的抽象基类。

Realm 集合是可以作为 Realm 对象的属性存储的任何类型的值的同质序列。 可以通过与访问普通 Javascript 数组相同的任何方式访问集合,包括使用下标、使用for-of进行枚举等。

collection始终会反映 Realm 的当前状态。唯一的例外是使用for...infor...of枚举时,该枚举将始终枚举开始枚举时与查询匹配的对象,即使其中一些对象在枚举。

以下版本开始: 0.11.0
长度
只读

collection中值的数量。

类型
number
可选
只读

null是否为collection的有效值。

类型
boolean
类型
只读

collection中值的类型

类型
string
addListener(回调)

添加监听器callback ,当实时collection实例发生更改时将调用该监听器。

参数
  • callback
    • 类型: function
    • 发生更改时要调用的函数。 使用两个参数调用回调函数:

      • collection:发生更改的集合实例,
      • changes:具有键insertionsnewModificationsoldModificationsdeletions的字典,每个键都包含集合中分别插入、更新或删除的索引列表。 deletionsoldModifications是更改发生之前集合的索引,而insertionsnewModifications是新版本集合的索引。
抛出异常
  • Error
    • 如果callback不是函数。

示例
wines.addListener((collection, changes) => {
 // collection === wines
 console.log(`${changes.insertions.length} insertions`);
 console.log(`${changes.modifications.length} modifications`);
 console.log(`${changes.deletions.length} deletions`);
 console.log(`new size of collection: ${collection.length}`);
});
avg属性number

计算集合中值的平均值或集合中所有对象中给定属性的平均值,如果集合为空,则为undefined

仅支持 int、float 和 double 属性。 此方法会完全忽略null值,也不会计入平均值。

参数
  • 属性 可选
    • 类型: string
    • 对于对象集合,要计算平均值的属性。

抛出异常
  • Error
    • 如果不存在具有该名称的属性或者属性不是数字。

返回number总和。
条目()Iterator<T>
返回集合中每对[index, object]Iterator<T>
every(callback, thisArg )boolean
请参阅: Array.prototype.every
参数
  • callback
    • 类型: function
    • 对集合中每个对象执行的函数。 如果此函数为每个对象返回true ,则此方法将返回true 。 该函数接受三个参数:

      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • thisArg 可选
    • 类型: object
    • 调用callbackthis的值。

返回boolean表示callback是否为集合中的每个对象返回true
过滤(query, arg )Realm.Results<T>

返回表示此collection按所提供的查询进行筛选的新结果

参数
  • 查询
    • 类型: string
    • 用于从collection中筛选对象的查询。

  • arg 可选 可重复
    • 类型: any
    • 每个后续参数都由占位符使用(例如 $0$1$2 、...)在查询中。

抛出异常
  • Error
    • 如果传递给该方法的查询或任何其他参数无效。

返回Realm.Results<T>根据提供的查询进行筛选。目前仅 Realm 对象集合支持此功能。有关查询语言的详细信息,请参阅查询语言。
示例
let merlots = wines.filtered('variety == "Merlot" && vintage 
find(callback, thisArg )T or undefined
请参阅: Array.prototype.find
参数
  • callback
    • 类型: function
    • 对集合中每个对象执行的函数。 如果此函数返回true ,则此方法将返回该对象。 该函数接受三个参数:

      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • thisArg 可选
    • 类型: object
    • 调用callbackthis的值。

返回Tundefined如果callback未为集合中的任何对象返回true
findIndex(callback, thisArg )number
参数
  • callback
    • 类型: function
    • 对集合中每个对象执行的函数。 如果此函数返回true ,则此方法将返回该对象的索引。 该函数接受三个参数:

      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • thisArg 可选
    • 类型: object
    • 调用callbackthis的值。

返回number表示callback返回true的索引;如果从未返回true ,则返回-1
forEach(callback, thisArg )
参数
  • callback
    • 类型: function
    • 对集合中每个对象执行的函数。 该函数接受三个参数:

      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • thisArg 可选
    • 类型: object
    • 调用callbackthis的值。

indexOf(对象)number

查找collection中给定对象的索引。

参数
  • 对象
    • 类型: T
    • 要在collection中搜索的值。

抛出异常
  • Error
    • 如果参数是与collection不属于同一 Realm 的Realm.Object

返回number表示找到该值的索引,如果不在collection中,则返回-1
isEmpty()boolean

检查此collection是否为空。

返回boolean指示collection是否为空。
isValid()boolean

检查此集合是否未被删除以及是否是有效 Realm 的一部分。

返回boolean指示是否可以安全地访问该集合。
连接 (JOIN)分隔符string

将collection中的所有对象连接成一个字符串。

请参阅: Array.prototype.join
参数
  • 分隔符 可选
    • 类型: string
    • 默认: ","
    • 一个字符串,用于分隔对collection中每个对象调用的toString()方法的返回值。

返回string
密钥()Iterator<T>
请参阅: Array.prototype.keys
返回collection中每个索引的Iterator<T>
map(callback, thisArg )[any, ...]
请参阅: Array.prototype.map
参数
  • callback
    • 类型: function
    • 对集合中每个对象执行的函数。 该函数接受三个参数:

      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • thisArg 可选
    • 类型: object
    • 调用callbackthis的值。

返回[any, ...] — 对collection中的每个对象调用callback后的返回值。
Max属性number

返回集合中所有对象中值或给定属性的最大值;如果集合为空,则返回undefined

仅支持 int、float、double 和 date 属性。 此方法会完全忽略null值,因此不会返回该值。

参数
  • 属性 可选
    • 类型: string
    • 对于collection的对象,要取最大值的属性。

抛出异常
  • Error
    • 如果不存在具有以下名称的属性,或者属性不是数字/日期。

返回number最大值。
min属性number

返回集合中值的最小值或集合中所有对象中给定属性的最小值;如果集合为空,则返回undefined

仅支持 int、float、double 和 date 属性。 此方法会完全忽略null值,因此不会返回该值。

参数
  • 属性 可选
    • 类型: string
    • 对于collection的对象,要取最小值的属性。

抛出异常
  • Error
    • 如果不存在具有以下名称的属性,或者属性不是数字/日期。

返回number最小值。
化简(reduce)回调, initialValueany
请参阅: Array.prototype.reduce
参数
  • callback
    • 类型: function
    • 对集合中每个对象执行的函数。 该函数有四个参数:

      • previousValue – 上次调用回调时返回的值,或initialValue (如果已提供)。
      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • 初始值 可选
    • 类型: object
    • 用作首次调用callback的第一个参数的值。

抛出异常
  • TypeError
    • 如果collection为空且未提供initialValue

返回any – 最终调用callback的返回值,以下特殊情况除外
  • 如果collection由单个对象组成,并且未提供initalValue ,则将返回该对象。
  • 如果集合为空,则必须提供initialValue ,该集合将返回。
reduceRight回调, initialValueany
参数
  • callback
    • 类型: function
    • 对collection中从右到左的每个对象执行的函数。该函数有四个参数:

      • previousValue – 上次调用回调时返回的值,或initialValue (如果已提供)。
      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • 初始值 可选
    • 类型: object
    • 用作首次调用callback的第一个参数的值。

抛出异常
  • TypeError
    • 如果collection为空且未提供initialValue

返回any – 最终调用callback的返回值,以下特殊情况除外
  • 如果collection由单个对象组成,并且未提供initalValue ,则将返回该对象。
  • 如果集合为空,则必须提供initialValue ,该集合将返回。
removeAllListeners()

从collection实例中删除所有callback侦听器。

removeListener(回调)

从collection实例中删除侦听器callback

参数
  • callback
    • 类型: function
    • 之前通过addListener方法添加为侦听器的回调函数。

抛出异常
  • Error
    • 如果callback不是函数。

slice( start , end )[T, ...]
请参阅: Array.prototype.slice
参数
  • 开始 可选
    • 类型: number
    • 默认: 0
    • 起始索引。 如果为负数,则起始索引将从collection的末尾开始计数。

  • end 可选
    • 类型: number
    • 结束索引。 直到(但不包括)结束索引的对象将包含在返回值中。 如果为负数,则结束索引将从集合末尾开始计数。 如果省略,则起始索引中的所有对象都将包含在返回值中。

返回包含从开始索引到(但不包括)结束索引的对象的[T, ...]
snapshot()Realm.Results<T>

创建集合的快照。

在原始collection中添加和删除的值不会反映在该方法返回的结果中,包括更改properties值以使其匹配或不匹配应用的任何筛选器的情况。

不是深度快照。此快照中包含的 Realm 对象将随着对其进行的更改而继续更新,如果它们从 Realm 中删除,则它们将在相应索引处被null替换。

抛出异常
  • Error
    • 对基元类型的collection进行快照时。

返回Realm.Results<T> ,这不会进行实时更新。
some(callback, thisArg )boolean
请参阅: Array.prototype.some
参数
  • callback
    • 类型: function
    • 对集合中每个对象执行的函数。 如果此函数返回true ,则此方法将返回true 。 该函数接受三个参数:

      • object – collection中正在处理的当前对象。
      • index – collection中正在处理的对象的索引。
      • collection – collection本身。
  • thisArg 可选
    • 类型: object
    • 调用callbackthis的值。

返回callback为集合中的对象返回true时,返回booleantrue ,否则返回false
已排序描述符反向Realm.Results<T>

返回表示此collection的排序视图的新结果

Realm 对象的集合可以根据这些对象的一个或多个属性进行排序,或者根据这些对象链接到的对象的属性进行排序。 要按单个属性排序,只需将该属性的名称传递给sorted() ,后面可以可选地加上一个布尔值,指示是否应反向排序。 对于多个属性,必须传递一组排序描述符,其中列出要排序的属性。

其他类型的collection按值本身而不是属性的进行排序,因此不应提供属性名称或排序描述符。

参数
  • 描述符 可选
    • 类型: string[SortDescriptor, ...]
    • 对collection进行排序的属性名称。

  • reverse 可选
    • 类型: boolean
    • 默认: false
    • 按降序而不是升序排序。 如果descriptor是排序描述符数组,则可以不提供。

抛出异常
  • Error
    • 如果指定的属性不存在。

返回根据传入的参数排序的Realm.Results<T>
示例
// Sort wines by age
wines.sorted('age')
// Sort wines by price in descending order, then sort ties by age in
// ascending order
wines.sorted([['price', false], ['age']])
// Sort a list of numbers in ascending order
let sortedPrices = wine.pricesSeen.sort()
// Sort people by how expensive their favorite wine is
people.sort("favoriteWine.price")
总和属性number

计算集合中值的总和或集合中所有对象中给定属性的总和,如果集合为空,则计算 0。

仅支持 int、float 和 double 属性。 此方法完全忽略null值。

参数
  • 属性 可选
    • 类型: string
    • 对于collection的对象,要求和的属性。

抛出异常
  • Error
    • 如果不存在具有该名称的属性或者属性不是数字。

返回number总和。
Symbol.iterator()Iterator<T>

此方法与values()方法相同。 它的存在使得collection成为可迭代的,因此能够与 ES6 for-of循环、 ...展开操作符等一起使用。

返回集合中每个 Realm 对象的Iterator<T>
示例
for (let object of collection) {
  // do something with each object
}
values()Iterator<T>
请参阅: Array.prototype.values
返回集合中每个 Realm 对象的Iterator<T>
迭代程序

这是一个 ES6 迭代器。

属性:
  • 来年
    • 类型: function
    • 返回具有两个属性的对象:

      • done – 如果迭代器完成对集合中项目的迭代,则为true ,否则为false
      • value – collection中正在遍历的下一项,或者当undefined done为 时为true
  • Symbol.iterator
    • 类型: function
    • 此方法仅返回this ,从而使此迭代器本身可迭代(即 可在for-of循环中使用,与...扩展运算符等一起使用)。

请参阅: 迭代器协议
SortDescriptor

排序描述符可以是包含一个或多个用点分隔的属性名称的字符串,可以是包含两个项目的数组: [propertyName, reverse]

类型
string or Array