UNPKG

572 BJavaScriptView Raw
1var map = require('./map')
2var forEach = require('./each')
3var toFunction = require('to-function')
4var sortValues = require('./sort_values')
5
6module.exports = function sortBy (each, condition, isArray) {
7 if (typeof isArray === 'undefined' && !Array.isArray(each)) isArray = false
8 if (typeof each !== 'function') each = forEach.bind(this, each)
9
10 condition = toFunction(condition)
11
12 var values = map(each, function (value, key, index) {
13 return { key: key, value: value, criteria: condition(value, key), index: index }
14 })
15
16 return sortValues(values, isArray)
17}