Underscore
The Underscore filter maps relevant Ruby methods to their Underscore.js library equivalents.
List of Transformations
.clone()_.clone().compact()_.compact().count_by {}_.countBy {}.find {}_.find {}.find_by()_.findWhere().flatten()_.flatten().group_by {}_.groupBy {}.has_key?()_.has().index_by {}_.indexBy {}.invert()_.invert().invoke(&:n)_.invoke(, :n).map(&:n)_.pluck(, :n).merge!()_.extend().merge()_.extend({}, ).reduce {}_.reduce {}.reduce()_.reduce().reject {}_.reject {}.sample()_.sample().select {}_.select {}.shuffle()_.shuffle().size()_.size().sort()_.sort_by(, _.identity).sort_by {}_.sortBy {}.times {}_.times {}.values()_.values().where()_.where().zip()_.zip()(n...m)_.range(n, m)(n..m)_.range(n, m+1)n.take(m)_.take(n, m)n.drop(m)_.drop(n, m).min_.min().max_.max()n.each_slice(m)_.chunk(n, m)
Additional Features
.compact!,.flatten!,shuffle!,reject!,sort_by!, and.uniqbecome equivalent.splice(0, .length, *.method())statements- for the following methods, if the block consists entirely of a simple
expression (or ends with one), a
returnis added prior to the expression:reduce,sort_by,group_by,index_by,count_by,find,select,reject. is_a?andkind_of?map toObject.prototype.toString.call() === "[object #{type}]" for the following types:Arguments,Boolean,Date,Error,Function,Number,Object,RegExp,String; and maps Ruby names to JavaScript equivalents forException,Float,Hash,Proc, andRegexp. Additionally,is_a?andkind_of?map toArray.isArray()forArray`.