Realm设置

访问类型为"Set"的对象属性时,将返回此类的实例(请参阅ObjectSchemaProperty )。

集的大部分行为与普通 JavaScript 集相同,但有一些例外:它们只能存储单一类型的值(由集的typeoptional属性表示)。 它们只能在写事务(write transaction)中修改。与 JavaScript 的 Set 不同,Realm~Set 不对values()entries()keys()forEach迭代的遍历顺序做任何保证。 如果要求集中的值具有某种顺序,则必须由开发者通过例如将值包装在保存用户提供的插入顺序的对象中的对象来实现。

长度
只读

collection中值的数量。

类型
number
可选
只读

null是否为collection的有效值。

类型
boolean
类型
只读

collection中值的类型

类型
string
添加(值)Realm.Set

向集合添加值

参数
    • 类型: T
    • 要添加到集合的值

抛出异常
  • TypeError
    • 如果value不是可以存储在 Set 中的类型,或者添加到 Set 中的对象与 Set 的object schema不匹配。

  • Error
    • 如果不在写事务(write transaction)中。

返回Realm.Set :添加元素后的 Set 本身
清除()void

从集合中删除所有值

抛出异常
  • Error
    • 如果不在写事务(write transaction)中。

返回void
删除(值)boolean

从集中删除值

参数
    • 类型: T
    • 要从集合中删除的值

抛出异常
  • Error
    • 如果不在写事务(write transaction)中。

返回boolean :如果该值存在于集中,则为 true,否则为 false
(值)boolean

检查集合中是否存在值

参数
    • 类型: T
    • 要在集合中搜索的值

抛出异常
  • TypeError
    • 如果value不是可以存储在 Set 中的类型,或者添加到 Set 中的对象与 Set 的object schema不匹配。

返回boolean :如果该值存在于集中,则为 True,否则为 False
Symbol.iterator()Iterator<T>

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

返回集合中每个 Realm 对象的Iterator<T>
示例
for (let object of collection) {
  // do something with each object
}
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总和。
values()Iterator<T>
请参阅: Array.prototype.values
返回集合中每个 Realm 对象的Iterator<T>