UNPKG

@kitmi/utils

Version:

A JavaScript utility library for both server and browser

37 lines (36 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _reduce = /*#__PURE__*/ _interop_require_default(require("lodash/reduce")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const mapFilterReducerArray = (predicate, mapper)=>(result, value)=>{ if (predicate(value)) { result.push(mapper(value)); } return result; }; const mapFilterReducerObject = (predicate, mapper)=>(result, value, key)=>{ if (predicate(value)) { result[key] = mapper(value); } return result; }; /** * Map the filtered collection. * @param {object} collection * @param {function} filterPredicate * @param {function} mapper */ const mapFilter = (collection, filterPredicate, mapper)=>Array.isArray(collection) ? (0, _reduce.default)(collection, mapFilterReducerArray(filterPredicate, mapper), []) : (0, _reduce.default)(collection, mapFilterReducerObject(filterPredicate, mapper), {}); const _default = mapFilter; //# sourceMappingURL=mapFilter.js.map