UNPKG

foop

Version:

interfaces that describe their intentions.

46 lines (41 loc) 3.79 kB
var ObjectKeys = require('../../util/keys') var toArray = require('../../cast/toArray') var preAllocate = require('../../array/preAllocate') /** * The opposite of `mapValue` this method creates an ARRAY with the * same values as `ARRAY` and keys generated by running each own enumerable * string keyed property of `ARRAY` thru `iteratee`. The iteratee is invoked * with three arguments: (value, key, ARRAY). * @since 5.0.0-beta.6 * @memberOf loop * @alias mapArrayIndex * @alias mapArrayIndexes * @alias mapIndex * * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @return {Array} Returns the new mapped ARRAY. * * @fork 3.8.0 * @category Array * * @see mapValue * * @example * * mapKey({ 'a': 1, 'b': 2 }, (value, key) => key + value) * //=> { 'a1': 1, 'b2': 2 } * */ function mapIndex(array, iteratee) { // const arr = toArray(array) var result = preAllocate(array) for (var i = 0; i < array.length; i++) { var key = array[i] var value = array[key] result[iteratee(value, key, array)] = value } return result } module.exports = mapIndex //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwQXJyYXlLZXlzLmpzIiwic291cmNlcyI6WyJtYXBBcnJheUtleXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uLy4uL3V0aWwva2V5cycpXG5jb25zdCB0b0FycmF5ID0gcmVxdWlyZSgnLi4vLi4vY2FzdC90b0FycmF5JylcbmNvbnN0IHByZUFsbG9jYXRlID0gcmVxdWlyZSgnLi4vLi4vYXJyYXkvcHJlQWxsb2NhdGUnKVxuXG4vKipcbiAqIFRoZSBvcHBvc2l0ZSBvZiBgbWFwVmFsdWVgIHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gQVJSQVkgd2l0aCB0aGVcbiAqIHNhbWUgdmFsdWVzIGFzIGBBUlJBWWAgYW5kIGtleXMgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgZWFjaCBvd24gZW51bWVyYWJsZVxuICogc3RyaW5nIGtleWVkIHByb3BlcnR5IG9mIGBBUlJBWWAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxuICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBBUlJBWSkuXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKiBAbWVtYmVyT2YgbG9vcFxuICogQGFsaWFzIG1hcEFycmF5SW5kZXhcbiAqIEBhbGlhcyBtYXBBcnJheUluZGV4ZXNcbiAqIEBhbGlhcyBtYXBJbmRleFxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybiB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgQVJSQVkuXG4gKlxuICogQGZvcmsgMy44LjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICpcbiAqIEBzZWUgbWFwVmFsdWVcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgbWFwS2V5KHsgJ2EnOiAxLCAnYic6IDIgfSwgKHZhbHVlLCBrZXkpID0+IGtleSArIHZhbHVlKVxuICogICAvLz0+IHsgJ2ExJzogMSwgJ2IyJzogMiB9XG4gKlxuICovXG5mdW5jdGlvbiBtYXBJbmRleChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgLy8gY29uc3QgYXJyID0gdG9BcnJheShhcnJheSlcbiAgY29uc3QgcmVzdWx0ID0gcHJlQWxsb2NhdGUoYXJyYXkpXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGtleSA9IGFycmF5W2ldXG4gICAgY29uc3QgdmFsdWUgPSBhcnJheVtrZXldXG4gICAgcmVzdWx0W2l0ZXJhdGVlKHZhbHVlLCBrZXksIGFycmF5KV0gPSB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hcEluZGV4XG4iXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUM3Q0EsR0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUM7QUFDN0NBLEdBQUssQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJ0RCxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFOztFQUVqQ0EsR0FBSyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDOztFQUVqQyxLQUFLQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUNyQ0QsR0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BCQSxHQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDeEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSztHQUM1Qzs7RUFFRCxPQUFPLE1BQU07Q0FDZDs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFFBQVE7In0=