transform source npm
_.transform(object, [iteratee=_.identity], [accumulator])
An alternative to _.reduce; this method transforms object to a new
accumulator object which is the result of running each of its own enumerable
properties through iteratee, with each invocation potentially mutating
the accumulator object. The iteratee is invoked with four arguments:
(accumulator, value, key, object). Iteratee functions may exit iteration
early by explicitly returning false.
Arguments
- object (Array|Object)
The object to iterate over.
- [iteratee=_.identity] (Function)
The function invoked per iteration.
- [accumulator] (*)
The custom accumulator value.
Returns (*)
Returns the accumulated value.
Example
_.transform([2, 3, 4], function(result, n) {
result.push(n *= n);
return n % 2 == 0;
});
// => [4, 9]
_.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
(result[value] || (result[value] = [])).push(key);
});
// => { '1': ['a', 'c'], '2': ['b'] }