4.17.11
3.10.1
2.4.2
1.3.1
_.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 string keyed properties thru iteratee
, with each invocation
potentially mutating the accumulator
object. If accumulator
is not
provided, a new object with the same [[Prototype]]
will be used. The
iteratee is invoked with four arguments: (accumulator, value, key, object).
Iteratee functions may exit iteration early by explicitly returning false
.
Since
1.3.0
Arguments
argument
object
[iteratee=_.identity]
[accumulator]
type
Object
Function
*
description
The object to iterate over.
The function invoked per iteration.
The custom accumulator value.
Returns
(array)
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'] }
_.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'] }