@newdash/newdash
Version:
javascript/typescript utility library
30 lines (29 loc) • 1.12 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const baseGet_1 = __importDefault(require("./baseGet"));
const baseSet_1 = __importDefault(require("./baseSet"));
const castPath_1 = __importDefault(require("./castPath"));
const flatten_1 = __importDefault(require("../flatten"));
/**
* The base implementation of `pickBy`.
*
* @private
* @param {Object} object The source object.
* @param {string[]} paths The property paths to pick.
* @param {Function} predicate The function invoked per property.
* @returns {Object} Returns the new object.
*/
function basePickBy(object, paths = [], predicate = () => true) {
const result = {};
(0, flatten_1.default)(paths).forEach(path => {
const value = (0, baseGet_1.default)(object, path);
if (predicate(value, path)) {
(0, baseSet_1.default)(result, (0, castPath_1.default)(path, object), value);
}
});
return result;
}
exports.default = basePickBy;