# lodash transform

** _.reduce 的替代方法; 此方法将转换 object 对象为一个新的 accumulator 对象,结果来自 iteratee 处理自身可枚举的属性。**

概要

_.transform(object, [iteratee=_.identity], [accumulator])

_.reduce 的替代方法; 此方法将转换 object 对象为一个新的 accumulator 对象,结果来自 iteratee 处理自身可枚举的属性。每次调用可能会改变 accumulator 对象。如果不提供 accumulator,将使用与 [[Prototype]] 相同的新对象。iteratee 调用 4 个参数:( accumulator, value, key, object)。如果返回 falseiteratee 会提前退出。

添加版本 1.3.0

参数

  1. object (Object): 要遍历的对象
  2. [iteratee=_.identity] (Function): 每次迭代时调用的函数。
  3. [accumulator] (*): 定制叠加的值。

返回 (*): 返回叠加后的值。

例子


_.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'] }

Last Updated: 6/17/2023, 6:57:19 PM