Skip to content

Instantly share code, notes, and snippets.

@trxcllnt
Last active December 17, 2015 02:39
Show Gist options
  • Save trxcllnt/5537369 to your computer and use it in GitHub Desktop.
Save trxcllnt/5537369 to your computer and use it in GitHub Desktop.
Observable.sort
rx = require 'rx'
_ = require 'underscore'
Observable = rx.Observable
Observable::sort = (sorter) ->
source = @
Observable.createWithDisposable (observer) ->
list = [];
source.map((val) ->
list.splice((index = sorter list, val), 0, val)
index: index, value : val
)
.subscribe(observer)
randos = Observable.range(0, 100).map (-> Math.round(Math.random() * 1000))
sorted = randos.sort _.sortedIndex
sorted.subscribe console.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment