_.reduceRight

reduceRight_.reduceRight(list, iteratee, memo, [context]) Alias: foldr The right-associative version of reduce. Foldr is not as useful in JavaScript as it would be in a language with lazy evaluation. var list = [[0, 1], [2, 3], [4, 5]]; var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []); => [4, 5, 2, 3, 0, 1]

_.before

before_.before(count, function) Creates a version of the function that can be called no more than count times. The result of the last function call is memoized and returned when count has been reached. var monthlyMeeting = _.before(3, askForRaise); monthlyMeeting(); monthlyMeeting(); monthlyMeeting(); // the result of any subsequent calls is the same as the second call

_.isNumber

isNumber_.isNumber(object) Returns true if object is a Number (including NaN). _.isNumber(8.4 * 5); => true

_.select

filter_.filter(list, predicate, [context]) Alias: select Looks through each value in the list, returning an array of all the values that pass a truth test (predicate). var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); => [2, 4, 6]

_.indexOf

indexOf_.indexOf(array, value, [isSorted]) Returns the index at which value can be found in the array, or -1 if value is not present in the array. If you're working with a large array, and you know that the array is already sorted, pass true for isSorted to use a faster binary search ... or, pass a number as the third argument in order to look for the first matching value in the array after the given index. _.indexOf([1, 2, 3], 2); => 1

_.indexBy

indexBy_.indexBy(list, iteratee, [context]) Given a list, and an iteratee function that returns a key for each element in the list (or a property name), returns an object with an index of each item. Just like groupBy, but for when you know your keys are unique. var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}]; _.indexBy(stooges, 'age'); => { "40": {name: 'moe', age: 40}, "50": {name: 'larry', age: 50}, "60": {name: 'curly', age: 60} }

_.isMatch

isMatch_.isMatch(object, properties) Tells you if the keys and values in properties are contained in object. var stooge = {name: 'moe', age: 32}; _.isMatch(stooge, {age: 32}); => true

_.isBoolean

isBoolean_.isBoolean(object) Returns true if object is either true or false. _.isBoolean(null); => false

_.findIndex

findIndex_.findIndex(array, predicate, [context]) Similar to _.indexOf, returns the first index where the predicate truth test passes; otherwise returns -1. _.findIndex([4, 6, 8, 12], isPrime); => -1 // not found _.findIndex([4, 6, 7, 12], isPrime); => 2

_.unescape

unescape_.unescape(string) The opposite of escape, replaces &, <, >, ", ` and ' with their unescaped counterparts. _.unescape('Curly, Larry & Moe'); => "Curly, Larry & Moe"