PHP 8.2.30
Preview: transform.js Size: 2.10 KB
//opt/alt/alt-nodejs9/root/lib/node_modules/npm/node_modules/cli-table2/node_modules/lodash/object/transform.js

var arrayEach = require('../internal/arrayEach'),
    baseCallback = require('../internal/baseCallback'),
    baseCreate = require('../internal/baseCreate'),
    baseForOwn = require('../internal/baseForOwn'),
    isArray = require('../lang/isArray'),
    isFunction = require('../lang/isFunction'),
    isObject = require('../lang/isObject'),
    isTypedArray = require('../lang/isTypedArray');

/**
 * 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 bound to `thisArg` and invoked
 * with four arguments: (accumulator, value, key, object). Iteratee functions
 * may exit iteration early by explicitly returning `false`.
 *
 * @static
 * @memberOf _
 * @category Object
 * @param {Array|Object} object The object to iterate over.
 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
 * @param {*} [accumulator] The custom accumulator value.
 * @param {*} [thisArg] The `this` binding of `iteratee`.
 * @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 }, function(result, n, key) {
 *   result[key] = n * 3;
 * });
 * // => { 'a': 3, 'b': 6 }
 */
function transform(object, iteratee, accumulator, thisArg) {
  var isArr = isArray(object) || isTypedArray(object);
  iteratee = baseCallback(iteratee, thisArg, 4);

  if (accumulator == null) {
    if (isArr || isObject(object)) {
      var Ctor = object.constructor;
      if (isArr) {
        accumulator = isArray(object) ? new Ctor : [];
      } else {
        accumulator = baseCreate(isFunction(Ctor) ? Ctor.prototype : undefined);
      }
    } else {
      accumulator = {};
    }
  }
  (isArr ? arrayEach : baseForOwn)(object, function(value, index, object) {
    return iteratee(accumulator, value, index, object);
  });
  return accumulator;
}

module.exports = transform;

Directory Contents

Dirs: 0 × Files: 29

Name Size Perms Modified Actions
1.58 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.24 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
835 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
745 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
38 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.78 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.79 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
980 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
840 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
975 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
844 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
575 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
951 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.56 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.54 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.27 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.62 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
781 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.57 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.67 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
41 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.56 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
800 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.47 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.54 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
1.36 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
2.10 KB lrw-r--r-- 2021-09-28 11:28:33
Edit Download
691 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download
681 B lrw-r--r-- 2021-09-28 11:28:33
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).