ninjs-lodash
Version:
lodash wrapper + utils
30 lines (25 loc) • 764 B
JavaScript
/**
* Array Utils
*/
const _ = require('lodash')
exports = module.exports = {
"args": args,
"mergeArrays": mergeArrays
}
_.mixin(exports)
function args(argsarr) {
argsarr = !_.isEmpty(argsarr) ? _.isArray(argsarr) ? argsarr : _.isArguments(argsarr) ? _.toArray(argsarr) : [argsarr] : []
if(!argsarr || !_.isArray(argsarr) || argsarr.length === 0) return []
return _.transform(argsarr, function(result, val) {
if(_.isArguments(val)) result = result.concat(_.toArray(val))
else result.push(val)
}, [])
}
function mergeArrays(olds, news, key) {
return _.chain(olds || [])
.concat(news || [])
.groupBy(key)
.map(function(g) { return _.assign(g[0], g[1]) })
.value()
}