首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OrderedSet

一种类型的Set,它具有额外的保证,即值的迭代顺序将是它们被add编辑的顺序。

代码语言:javascript
复制
class OrderedSet<T> extends Set<T>

Discussion

OrderedSet的迭代行为与原生ES6 Set相同。

请注意,这OrderedSet比无序更昂贵Set,可能会消耗更多的内存。OrderedSet#add分期付款O(log32 N),但不稳定。

Construction

OrderedSet()

创建一个包含所提供的类似iterable的值的新的不可变OrderedSet。

代码语言:javascript
复制
OrderedSet<T>(): OrderedSet<T>
OrderedSet<T>(iter: Iterable.Set<T>): OrderedSet<T>
OrderedSet<T>(iter: Iterable.Indexed<T>): OrderedSet<T>
OrderedSet<K, V>(iter: Iterable.Keyed<K, V>): OrderedSet<any>
OrderedSet<T>(array: Array<T>): OrderedSet<T>
OrderedSet<T>(iterator: Iterator<T>): OrderedSet<T>
OrderedSet<T>(iterable: Object): OrderedSet<T>

Static methods

OrderedSet.isOrderedSet()

如果提供的值是OrderedSet,则为true。

代码语言:javascript
复制
OrderedSet.isOrderedSet(maybeOrderedSet: any): boolean

OrderedSet.of()

创建一个新的OrderedSet values

代码语言:javascript
复制
OrderedSet.of<T>(...values: T[]): OrderedSet<T>

OrderedSet.fromKeys()

OrderedSet.fromKeys() 创建一个新的不可变OrderedSet,其中包含来自此Iterable或JavaScript Object的键。

代码语言:javascript
复制
OrderedSet.fromKeys<T>(iter: Iterable<T, any>): OrderedSet<T>
OrderedSet.fromKeys(obj: {[key: string]: any}): OrderedSet<string>

Members

OrderedSet#size

代码语言:javascript
复制
size: number

Inherited from

Collection#size

Persistent changes

OrderedSet#add()

返回一个新的Set,它也包含这个值。

代码语言:javascript
复制
add(value: T): Set<T>

Inherited from

Set#add

OrderedSet#delete()

返回排除此值的新Set。

代码语言:javascript
复制
delete(value: T): Set<T>

Inherited from

Set#delete

alias

remove()

Discussion

注意:delete不能在IE8中安全使用

OrderedSet#clear()

返回一个不包含值的新Set。

代码语言:javascript
复制
clear(): Set<T>

Inherited from

Set#clear

OrderedSet#union()

返回包含iterables该集合中尚不存在的任何值的集合。

代码语言:javascript
复制
union(...iterables: Iterable<any, T>[]): Set<T>
union(...iterables: Array<T>[]): Set<T>

Inherited from

Set#union

alias

merge()

OrderedSet#intersect()

返回一个Set,它删除了不包含在其中的任何值iterables

代码语言:javascript
复制
intersect(...iterables: Iterable<any, T>[]): Set<T>
intersect(...iterables: Array<T>[]): Set<T>

Inherited from

Set#intersect

OrderedSet#subtract()

返回排除其中包含的值设置iterables

代码语言:javascript
复制
subtract(...iterables: Iterable<any, T>[]): Set<T>
subtract(...iterables: Array<T>[]): Set<T>

Inherited from

Set#subtract

Transient changes

OrderedSet#withMutations()

注意:并非所有方法都可用于可变集合或内部withMutations!只能add用于变异。

代码语言:javascript
复制
withMutations(mutator: (mutable: Set<T>) => any): Set<T>

Inherited from

Set#withMutations

see

Map#withMutations

OrderedSet#asMutable()

代码语言:javascript
复制
asMutable(): Set<T>

Inherited from

Set#asMutable

see

Map#asMutable

OrderedSet#asImmutable()

代码语言:javascript
复制
asImmutable(): Set<T>

Inherited from

Set#asImmutable

see

Map#asImmutable

Conversion to Seq

OrderedSet#toSeq()

返回Seq.Set。

代码语言:javascript
复制
toSeq(): Seq.Set<T>

Inherited from

Collection.Set#toSeq

OrderedSet#toKeyedSeq()

从此Iterable返回一个Seq.Keyed,其索引被视为键。

代码语言:javascript
复制
toKeyedSeq(): Seq.Keyed<T, T>

Inherited from

Iterable#toKeyedSeq

Discussion

如果您想要对Iterable.Indexed进行操作并保留索引,这对值非常有用。

返回的Seq将具有与此Iterable相同的迭代顺序。

Example:

代码语言:javascript
复制
var indexedSeq = Immutable.Seq.of('A', 'B', 'C');
indexedSeq.filter(v => v === 'B').toString() // Seq [ 'B' ]
var keyedSeq = indexedSeq.toKeyedSeq();
keyedSeq.filter(v => v === 'B').toString() // Seq { 1: 'B' }

OrderedSet#toIndexedSeq()

返回一个Seq.Indexed这个Iterable的值,丢弃键。

代码语言:javascript
复制
toIndexedSeq(): Seq.Indexed<T>

Inherited from

Iterable#toIndexedSeq

OrderedSet#toSetSeq()

返回一个Seq.Set这个Iterable的值,丢弃键。

代码语言:javascript
复制
toSetSeq(): Seq.Set<T>

Inherited from

Iterable#toSetSeq

Value equality

OrderedSet#equals()

如果这和另一个Iterable具有值相等性,则为真,如下定义Immutable.is()

代码语言:javascript
复制
equals(other: Iterable<T, T>): boolean

Inherited from

Iterable#equals

Discussion

注意:这相当于Immutable.is(this, other),但提供允许链式表达式。

OrderedSet#hashCode()

计算并返回此Iterable的散列标识。

代码语言:javascript
复制
hashCode(): number

Inherited from

Iterable#hashCode

Discussion

hashCode一个可迭代的用于确定潜在平等,和添加这一个当使用Set或作为一个键Map,经由不同的实例实现查找。

代码语言:javascript
复制
var a = List.of(1, 2, 3);
var b = List.of(1, 2, 3);
assert(a !== b); // different instances
var set = Set.of(a);
assert(set.has(b) === true);

如果两个值相同hashCode,则不能保证相等(http://en.wikipedia.org/wiki/Collision_(computer_science%29)。如果两个值有不同的hashCodes,则它们不能相等。

Reading values

OrderedSet#get()

返回与提供的键相关联的值,如果Iterable不包含此键,则返回notSetValue。

代码语言:javascript
复制
get(key: T, notSetValue?: T): T

Inherited from

Iterable#get

Discussion

注意:一个键可能与一个undefined值相关联,所以如果notSetValue没有提供并且该方法返回undefined,那么不能保证没有找到该键。

OrderedSet#has()

如果此关键字存在Iterable则为真,Immutable.is用于确定相等性

代码语言:javascript
复制
has(key: T): boolean

Inherited from

Iterable#has

OrderedSet#includes()

如果此值中存在值Iterable则为true ,Immutable.is用于确定相等性

代码语言:javascript
复制
includes(value: T): boolean

Inherited from

Iterable#includes

alias

contains()

OrderedSet#first()

Iterable中的第一个值。

代码语言:javascript
复制
first(): T

Inherited from

Iterable#first

OrderedSet#last()

Iterable中的最后一个值。

代码语言:javascript
复制
last(): T

Inherited from

Iterable#last

Reading deep values

OrderedSet#getIn()

通过嵌套的Iterables返回键或索引路径的值。

代码语言:javascript
复制
getIn(searchKeyPath: Array<any>, notSetValue?: any): any
getIn(searchKeyPath: Iterable<any, any>, notSetValue?: any): any

Inherited from

Iterable#getIn

OrderedSet#hasIn()

如果通过嵌套的Iterables跟随键或索引路径的结果导致设置值,则返回true。

代码语言:javascript
复制
hasIn(searchKeyPath: Array<any>): boolean
hasIn(searchKeyPath: Iterable<any, any>): boolean

Inherited from

Iterable#hasIn

Conversion to JavaScript types

OrderedSet#toJS()

将此Iterable深度转换为等效的JS。

代码语言:javascript
复制
toJS(): any

Inherited from

Iterable#toJS

alias

toJSON()

Discussion

Iterable.Indexeds,并Iterable.Sets成为阵列,同时Iterable.Keyeds成为物体。

OrderedSet#toArray()

浅显地将这个迭代器转换为一个Array,丢弃键。

代码语言:javascript
复制
toArray(): Array<T>

Inherited from

Iterable#toArray

OrderedSet#toObject()

将此Iterable浅转换为Object。

代码语言:javascript
复制
toObject(): {[key: string]: V}

Inherited from

Iterable#toObject

Discussion

如果键不是字符串,则抛出。

Conversion to Collections

OrderedSet#toMap()

将此Iterable转换为Map,如果键不可哈希则抛出。

代码语言:javascript
复制
toMap(): Map<T, T>

Inherited from

Iterable#toMap

Discussion

注意:这相当于Map(this.toKeyedSeq()),但为方便起见并允许链接表达式。

OrderedSet#toOrderedMap()

将此Iterable转换为Map,并保持迭代顺序。

代码语言:javascript
复制
toOrderedMap(): OrderedMap<T, T>

Inherited from

Iterable#toOrderedMap

Discussion

注意:这相当于OrderedMap(this.toKeyedSeq()),但为方便起见并允许链接表达式。

OrderedSet#toSet()

将此Iterable转换为Set,放弃键。如果值不可哈希则抛出。

代码语言:javascript
复制
toSet(): Set<T>

Inherited from

Iterable#toSet

Discussion

注意:这相当于Set(this),但提供允许链式表达式。

OrderedSet#toOrderedSet()

将此Iterable转换为Set,保持迭代顺序并丢弃键。

代码语言:javascript
复制
toOrderedSet(): OrderedSet<T>

Inherited from

Iterable#toOrderedSet

Discussion

注意:这相当于OrderedSet(this.valueSeq()),但为方便起见并允许链接表达式。

OrderedSet#toList()

将此Iterable转换为List,放弃键。

代码语言:javascript
复制
toList(): List<T>

Inherited from

Iterable#toList

Discussion

注意:这相当于List(this),但提供允许链式表达式。

OrderedSet#toStack()

将此Iterable转换为堆栈,丢弃键。如果值不可哈希则抛出。

代码语言:javascript
复制
toStack(): Stack<T>

Inherited from

Iterable#toStack

Discussion

注意:这相当于Stack(this),但提供允许链式表达式。

Iterators

OrderedSet#keys()

这个Iterable键的迭代器。

代码语言:javascript
复制
keys(): Iterator<T>

Inherited from

Iterable#keys

Discussion

注意:这将返回一个不支持Immutable JS序列算法的ES6迭代器。使用keySeq替代,如果这是你想要的。

OrderedSet#values()

这个Iterable值的迭代器。

代码语言:javascript
复制
values(): Iterator<T>

Inherited from

Iterable#values

Discussion

注意:这将返回一个不支持Immutable JS序列算法的ES6迭代器。使用valueSeq替代,如果这是你想要的。

OrderedSet#entries()

这个Iterable条目的迭代器作为[key, value]元组。

代码语言:javascript
复制
entries(): Iterator<Array<any>>

Inherited from

Iterable#entries

Discussion

注意:这将返回一个不支持Immutable JS序列算法的ES6迭代器。使用entrySeq替代,如果这是你想要的。

Iterables (Seq)

OrderedSet#keySeq()

返回此Iterable的新键的Seq.Indexed,放弃值。

代码语言:javascript
复制
keySeq(): Seq.Indexed<T>

Inherited from

Iterable#keySeq

OrderedSet#valueSeq()

返回一个Seq.Indexed这个Iterable的值,丢弃键。

代码语言:javascript
复制
valueSeq(): Seq.Indexed<T>

Inherited from

Iterable#valueSeq

OrderedSet#entrySeq()

返回一个新的Seq.Indexed键值值元组。

代码语言:javascript
复制
entrySeq(): Seq.Indexed<Array<any>>

Inherited from

Iterable#entrySeq

Sequence algorithms

OrderedSet#map()

使用通过mapper函数传递的值返回相同类型的新Iterable 。

代码语言:javascript
复制
map<M>(mapper: (value?: T, key?: T, iter?: Iterable<T, T>) => M,context?: any): Iterable<T, M>

Inherited from

Iterable#map

Example

代码语言:javascript
复制
Seq({ a: 1, b: 2 }).map(x => 10 * x)
// Seq { a: 10, b: 20 }

OrderedSet#filter()

predicate返回函数返回true 的条目返回相同类型的新Iterable 。

代码语言:javascript
复制
filter(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): Iterable<T, T>

Inherited from

Iterable#filter

Example

代码语言:javascript
复制
Seq({a:1,b:2,c:3,d:4}).filter(x => x % 2 === 0)
// Seq { b: 2, d: 4 }

OrderedSet#filterNot()

predicate返回函数返回false 的条目返回相同类型的新Iterable 。

代码语言:javascript
复制
filterNot(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): Iterable<T, T>

Inherited from

Iterable#filterNot

Example

代码语言:javascript
复制
Seq({a:1,b:2,c:3,d:4}).filterNot(x => x % 2 === 0)
// Seq { a: 1, c: 3 }

OrderedSet#reverse()

按相反顺序返回相同类型的新Iterable。

代码语言:javascript
复制
reverse(): Iterable<T, T>

Inherited from

Iterable#reverse

OrderedSet#sort()

返回包含相同条目的相同类型的新Iterable,通过使用a进行稳定排序comparator

代码语言:javascript
复制
sort(comparator?: (valueA: T, valueB: T) => number): Iterable<T, T>

Inherited from

Iterable#sort

Discussion

如果没有提供comparator,默认比较器使用<and>

comparator(valueA, valueB):

  • 返回0元素不应该交换的情况。
  • 返回-1(或任何负数)如果valueA之前valueB
  • 返回1(或任何正数)如果valueA后来valueB
  • 它是纯粹的,即i.e.它必须始终为同一对值返回相同的值。

排序没有定义顺序的集合时,它们的顺序等价物将被返回。例如map.sort()返回OrderedMap。

OrderedSet#sortBy()

就像sort,但也接受一个comparatorValueMapper允许更复杂的手段进行排序的一个:

代码语言:javascript
复制
sortBy<C>(comparatorValueMapper: (value?: T, key?: T, iter?: Iterable<T, T>) => C,comparator?: (valueA: C, valueB: C) => number): Iterable<T, T>

Inherited from

Iterable#sortBy

Example

代码语言:javascript
复制
hitters.sortBy(hitter => hitter.avgHits);

OrderedSet#groupBy()

返回Iterable.KeyedIterable.Keyeds,由返回值分组grouper功能。

代码语言:javascript
复制
groupBy<G>(grouper: (value?: T, key?: T, iter?: Iterable<T, T>) => G,context?: any): Seq.Keyed<G, Iterable<T, T>>

Inherited from

Iterable#groupBy

Discussion

注意:这总是一个急切的操作。

Side effects

OrderedSet#forEach()

sideEffect是在可迭代的每个条目执行。

代码语言:javascript
复制
forEach(sideEffect: (value?: T, key?: T, iter?: Iterable<T, T>) => any,context?: any): number

Inherited from

Iterable#forEach

Discussion

不同的是Array#forEach,如果有任何sideEffect回报的话false,迭代将停止。返回迭代的条目数(包括返回false的最后一次迭代)。

Creating subsets

OrderedSet#slice()

返回一个新的Iterable,其类型代表这个Iterable从开始到结束的一部分。

代码语言:javascript
复制
slice(begin?: number, end?: number): Iterable<T, T>

Inherited from

Iterable#slice

Discussion

如果begin是负数,它将从Iterable的末尾偏移。例如slice(-2)返回最后两个条目的Iterable。如果没有提供,则新的Iterable将在此Iterable开始时开始。

如果end是负数,它将从Iterable的末尾偏移。例如slice(0, -1)返回除最后一项之外的所有内容的Iterable。如果没有提供,那么新的Iterable将会持续到这个Iterable的结尾。

如果所请求的分片等同于当前的Iterable,那么它将自行返回。

OrderedSet#rest()

返回包含除第一个以外的所有条目的同一类型的新Iterable。

代码语言:javascript
复制
rest(): Iterable<T, T>

Inherited from

Iterable#rest

OrderedSet#butLast()

返回包含除最后一个以外的所有条目的同一类型的新Iterable。

代码语言:javascript
复制
butLast(): Iterable<T, T>

Inherited from

Iterable#butLast

OrderedSet#skip()

返回amount从此Iterable中排除第一个条目的同一类型的新Iterable。

代码语言:javascript
复制
skip(amount: number): Iterable<T, T>

Inherited from

Iterable#skip

OrderedSet#skipLast()

返回amount从此Iterable中排除最后一个条目的同一类型的新Iterable。

代码语言:javascript
复制
skipLast(amount: number): Iterable<T, T>

Inherited from

Iterable#skipLast

OrderedSet#skipWhile()

返回包含从predicate第一个返回false 时开始的相同类型的新Iterable 。

代码语言:javascript
复制
skipWhile(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): Iterable<T, T>

Inherited from

Iterable#skipWhile

Example

代码语言:javascript
复制
Seq.of('dog','frog','cat','hat','god')
  .skipWhile(x => x.match(/g/))
// Seq [ 'cat', 'hat', 'god' ]

OrderedSet#skipUntil()

返回包含从predicate第一个返回true 时开始的相同类型的新Iterable 。

代码语言:javascript
复制
skipUntil(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): Iterable<T, T>

Inherited from

Iterable#skipUntil

Example

代码语言:javascript
复制
Seq.of('dog','frog','cat','hat','god')
  .skipUntil(x => x.match(/hat/))
// Seq [ 'hat', 'god' ]

OrderedSet#take()

返回包含amount此Iterable中第一个条目的相同类型的新Iterable。

代码语言:javascript
复制
take(amount: number): Iterable<T, T>

Inherited from

Iterable#take

OrderedSet#takeLast()

返回包含amount此Iterable中最后一个条目的相同类型的新Iterable。

代码语言:javascript
复制
takeLast(amount: number): Iterable<T, T>

Inherited from

Iterable#takeLast

OrderedSet#takeWhile()

返回包含来自此Iterable的条目的相同类型的新Iterable,只要predicate返回值为true即可。

代码语言:javascript
复制
takeWhile(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): Iterable<T, T>

Inherited from

Iterable#takeWhile

Example

代码语言:javascript
复制
Seq.of('dog','frog','cat','hat','god')
  .takeWhile(x => x.match(/o/))
// Seq [ 'dog', 'frog' ]

OrderedSet#takeUntil()

返回包含来自此Iterable的条目的相同类型的新Iterable,只要predicate返回false即可。

代码语言:javascript
复制
takeUntil(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): Iterable<T, T>

Inherited from

Iterable#takeUntil

Example

代码语言:javascript
复制
Seq.of('dog','frog','cat','hat','god').takeUntil(x => x.match(/at/))
// ['dog', 'frog']

Combination

OrderedSet#concat()

用其他值返回一个具有相同类型的新Iterable,并将其连接到此类。

代码语言:javascript
复制
concat(...valuesOrIterables: any[]): Iterable<T, T>

Inherited from

Iterable#concat

Discussion

对于Seqs,即使它们具有相同的密钥,所有条目也会出现在所得到的迭代中。

OrderedSet#flatten()

压扁嵌套的Iterables。

代码语言:javascript
复制
flatten(depth?: number): Iterable<any, any>
flatten(shallow?: boolean): Iterable<any, any>

Inherited from

Iterable#flatten

Discussion

默认情况下会严格地将Iterable扁平化,返回一个相同类型的Iterable,但depth可以以数字或布尔值的形式提供(其中true表示浅层扁平化)。深度为0(或者浅:假)将会变得很平坦。

仅将其他的Iterable变为Flattens,而不是阵列或对象。

注意:flatten(true)在Iterable>上运行并返回Iterable

OrderedSet#flatMap()

平面映射Iterable,返回相同类型的Iterable。

代码语言:javascript
复制
flatMap<MK, MV>(mapper: (value?: T, key?: T, iter?: Iterable<T, T>) => Iterable<MK, MV>,context?: any): Iterable<MK, MV>
flatMap<MK, MV>(mapper: (value?: T, key?: T, iter?: Iterable<T, T>) => any,context?: any): Iterable<MK, MV>

Inherited from

Iterable#flatMap

Discussion

类似于iter.map(...).flatten(true)

Reducing a value

OrderedSet#reduce()

通过调用Iterable中的reducer每个条目并传递缩小的值,将Iterable减少为一个值。

代码语言:javascript
复制
reduce<R>(reducer: (reduction?: R, value?: T, key?: T, iter?: Iterable<T, T>) => R,initialReduction?: R,context?: any): R

Inherited from

Iterable#reduce

see

Discussion

如果initialReduction未提供,或者为空,则将使用Iterable中的第一项。

OrderedSet#reduceRight()

反向(从右侧)减少Iterable。

代码语言:javascript
复制
reduceRight<R>(reducer: (reduction?: R, value?: T, key?: T, iter?: Iterable<T, T>) => R,initialReduction?: R,context?: any): R

Inherited from

Iterable#reduceRight

Discussion

注意:类似于this.reverse()。reduce(),并提供与奇偶校验Array#reduceRight

OrderedSet#every()

如果predicate对Iterable中的所有条目返回true,则返回true。

代码语言:javascript
复制
every(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): boolean

Inherited from

Iterable#every

OrderedSet#some()

如果predicate对Iterable中的任何条目返回true,则返回true。

代码语言:javascript
复制
some(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): boolean

Inherited from

Iterable#some

OrderedSet#join()

将值作为字符串连接在一起,在每个值之间插入一个分隔符。默认分隔符是","

代码语言:javascript
复制
join(separator?: string): string

Inherited from

Iterable#join

OrderedSet#isEmpty()

如果此Iterable不包含任何值,则返回true。

代码语言:javascript
复制
isEmpty(): boolean

Inherited from

Iterable#isEmpty

Discussion

对于一些懒惰的人SeqisEmpty可能需要迭代以确定空虚。至多会发生一次迭代。

OrderedSet#count()

返回此Iterable的大小。

代码语言:javascript
复制
count(): number
count(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any): number

Inherited from

Iterable#count

Discussion

不管这个Iterable是否可以懒惰地描述它的大小(有些Seqs不能),这个方法总是会返回正确的大小。例如,Seq如果需要,它会评估一个懒惰。

如果predicate提供,则返回Iterable中predicate返回值为true 的条目的计数。

OrderedSet#countBy()

返回一个Seq.Keyed计数,按grouper函数的返回值分组。

代码语言:javascript
复制
countBy<G>(grouper: (value?: T, key?: T, iter?: Iterable<T, T>) => G,context?: any): Map<G, number>

Inherited from

Iterable#countBy

Discussion

注意:这不是一个懒惰的操作。

Search for value

OrderedSet#find()

返回predicate返回true 的第一个值。

代码语言:javascript
复制
find(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any,notSetValue?: T): T

Inherited from

Iterable#find

OrderedSet#findLast()

返回返回值为predicatetrue 的最后一个值。

代码语言:javascript
复制
findLast(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any,notSetValue?: T): T

Inherited from

Iterable#findLast

Discussion

注意:predicate每个条目都会被调用。

OrderedSet#findEntry()

返回返回值为true的第一个键值predicate

代码语言:javascript
复制
findEntry(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any,notSetValue?: T): Array<any>

Inherited from

Iterable#findEntry

OrderedSet#findLastEntry()

返回返回值为true的最后一个键值predicate

代码语言:javascript
复制
findLastEntry(predicate: (value?: T, key?: T, iter?: Iterable<T, T>) => boolean,context?: any,notSetValue?: T): Array<any>

Inherited from

Iterable#findLastEntry

Discussion

注意:predicate每个条目都会被调用。

OrderedSet#findKey()

返回predicate返回true 的键。

代码语言:javascript
复制
findKey(predicate: (value?: T, key?: T, iter?: Iterable.Keyed<T, T>) => boolean,context?: any): T

Inherited from

Iterable#findKey

OrderedSet#findLastKey()

返回predicate返回true 的最后一个键。

代码语言:javascript
复制
findLastKey(predicate: (value?: T, key?: T, iter?: Iterable.Keyed<T, T>) => boolean,context?: any): T

Inherited from

Iterable#findLastKey

Discussion

注意:predicate每个条目都会被调用。

OrderedSet#keyOf()

返回与搜索值关联的键,或者未定义。

代码语言:javascript
复制
keyOf(searchValue: T): T

Inherited from

Iterable#keyOf

OrderedSet#lastKeyOf()

返回与搜索值关联的最后一个键,或者未定义。

代码语言:javascript
复制
lastKeyOf(searchValue: T): T

Inherited from

Iterable#lastKeyOf

OrderedSet#max()

返回此集合中的最大值。如果任何值相当相等,则找到的第一个将被返回。

代码语言:javascript
复制
max(comparator?: (valueA: T, valueB: T) => number): T

Inherited from

Iterable#max

Discussion

comparator以同样的方式使用Iterable#sort。如果未提供,则默认比较器为>

当两个值被认为是等价的,遇到的第一个将被返回。否则,max只要比较器是可交换的,将独立于输入的顺序进行操作。默认比较器只有在类型不相同时才>可以交换。

如果comparator返回0,且其中任一值为NaN,undefined或null,则将返回该值。

OrderedSet#maxBy()

就像max,但也接受一个comparatorValueMapper允许通过更复杂的手段比较:

代码语言:javascript
复制
maxBy<C>(comparatorValueMapper: (value?: T, key?: T, iter?: Iterable<T, T>) => C,comparator?: (valueA: C, valueB: C) => number): T

Inherited from

Iterable#maxBy

Example

代码语言:javascript
复制
hitters.maxBy(hitter => hitter.avgHits);

OrderedSet#min()

返回此集合中的最小值。如果任何值相当相等,则找到的第一个将被返回。

代码语言:javascript
复制
min(comparator?: (valueA: T, valueB: T) => number): T

Inherited from

Iterable#min

Discussion

comparator以同样的方式使用Iterable#sort。如果未提供,则默认比较器为<

当两个值被认为是等价的,遇到的第一个将被返回。否则,min只要比较器是可交换的,将独立于输入的顺序进行操作。默认比较器只有在类型不相同时才<可以交换。

如果comparator返回0,且其中任一值为NaN,undefined或null,则将返回该值。

OrderedSet#minBy()

就像min,但也接受一个comparatorValueMapper允许通过更复杂的手段比较:

代码语言:javascript
复制
minBy<C>(comparatorValueMapper: (value?: T, key?: T, iter?: Iterable<T, T>) => C,comparator?: (valueA: C, valueB: C) => number): T

Inherited from

Iterable#minBy

Example

代码语言:javascript
复制
hitters.minBy(hitter => hitter.avgHits);

Comparison

OrderedSet#isSubset()

如果iter包含此Iterable中的每个值,则为真。

代码语言:javascript
复制
isSubset(iter: Iterable<any, T>): boolean
isSubset(iter: Array<T>): boolean

Inherited from

Iterable#isSubset

OrderedSet#isSuperset()

如果此Iterable包含每个值,则为真iter

代码语言:javascript
复制
isSuperset(iter: Iterable<any, T>): boolean
isSuperset(iter: Array<T>): boolean

Inherited from

Iterable#isSuperset

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com