- 前言
- Lazy
- createWrapper
- generate
- range
- repeat
- strict
- Sequence
- define
- async
- chunk
- compact
- concat
- consecutive
- contains
- countBy
- dropWhile
- each
- equals
- every
- filter
- find
- findWhere
- first
- flatten
- get
- getIterator
- groupBy
- indexBy
- indexOf
- initial
- intersection
- invoke
- isEmpty
- join
- last
- lastIndexOf
- map
- max
- memoize
- min
- none
- ofType
- pluck
- reduce
- reduceRight
- reject
- rest
- reverse
- shuffle
- size
- some
- sort
- sortBy
- sortedIndex
- sum
- takeWhile
- tap
- toArray
- toObject
- union
- uniq
- where
- without
- zip
- ArrayLikeSequence
- define
- concat
- first
- get
- length
- map
- pop
- push
- rest
- reverse
- shift
- slice
- unshift
- ObjectLikeSequence
- define
- assign
- async
- defaults
- functions
- get
- invert
- keys
- merge
- omit
- pairs
- pick
- toArray
- toObject
- values
- watch
- StringLikeSequence
- define
- charAt
- charCodeAt
- contains
- endsWith
- first
- indexOf
- last
- lastIndexOf
- mapString
- match
- reverse
- split
- startsWith
- substring
- toLowerCase
- toUpperCase
- GeneratedSequence
- each
- length
- AsyncSequence
- contains
- each
- find
- getIterator
- indexOf
- Iterator
- current
- moveNext
- AsyncHandle
- cancel
- onComplete
- onError
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
uniq
Creates a new sequence with every unique element from this one appearing exactly once (i.e., with duplicates removed).
Signature
Sequence.uniq = function(keyFn) { /*...*/ }
Sequence.uniq = function uniq(keyFn) { return new UniqueSequence(this, keyFn); }
Name | Type(s) | Description |
---|---|---|
keyFn | Function? | An optional function to produce the key for each object. This key is then tested for uniqueness as opposed to the object reference. |
returns | Sequence | The new sequence. |
Examples
Lazy([1, 2, 2, 3, 3, 3]).uniq() // sequence: [1, 2, 3] Lazy([{ name: 'mike' }, { name: 'sarah' }, { name: 'mike' } ]).uniq('name') // sequence: [{ name: 'mike' }, { name: 'sarah' }]
Benchmarks
function randomOf(array) { return function() { return array[Math.floor(Math.random() * array.length)]; }; } var mostUnique = Lazy.generate(randomOf(_.range(100)), 100).toArray(), someUnique = Lazy.generate(randomOf(_.range(50)), 100).toArray(), mostDupes = Lazy.generate(randomOf(_.range(5)), 100).toArray(); Lazy(mostUnique).uniq().each(Lazy.noop) // lazy - mostly unique elements Lazy(someUnique).uniq().each(Lazy.noop) // lazy - some unique elements Lazy(mostDupes).uniq().each(Lazy.noop) // lazy - mostly duplicate elements _.each(_.uniq(mostUnique), _.noop) // lodash - mostly unique elements _.each(_.uniq(someUnique), _.noop) // lodash - some unique elements _.each(_.uniq(mostDupes), _.noop) // lodash - mostly duplicate elements
Implementation | mostly unique elements | some unique elements | mostly duplicate elements |
---|---|---|---|
lazy | |||
lodash |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论