Realm列表

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

列表的行为大多与普通的 JavaScripttype optional数组相同,但列表只能存储单一类型的值(由列表的属性和属性表示),并且只能在 写事务(write transaction) 中进行修改。

长度
只读

collection中值的数量。

类型
number
可选
只读

null是否为collection的有效值。

类型
boolean
类型
只读

collection中值的类型

类型
string
Pop()T or undefined

从列表中删除最后一个值并将其返回。

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

返回Tundefined如果列表为空)。
推动number

将一个或多个值添加到列表末尾

参数
  • 可重复
    • 类型: T
    • 要添加到列表的值。

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

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

返回number等于添加值后列表中的新length
转变()T or undefined

从列表中删除第一个值并返回。

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

返回Tundefined如果列表为空)。
splice(索引、计数[T, ...]

通过删除值和/或插入新值来更改列表内容。

请参阅: Array.prototype.splice
参数
  • 索引(index)
    • 类型: number
    • 起始索引。 如果大于列表的长度,则将起始索引设置为该长度。 如果为负数,则起始索引将从列表末尾算起(例如 list.length - index )。

  • 数数 可选
    • 类型: number
    • 要从列表中删除的值的数量。 如果未提供,则删除从起始索引到列表末尾的所有值。

  • 可选 可重复
    • 类型: T
    • 要插入到从index开始的列表中的值。

返回包含从列表中删除的值的[T, ...] 。如果未删除任何值,则数组为空。
unshiftnumber

将一个或多个值添加到列表的开头

参数
  • 可重复
    • 类型: T
    • 要添加到列表的值。

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

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

返回number等于添加值后列表中的新length
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>