UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

29 lines (28 loc) 1.21 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const getIteratee_1 = __importDefault(require("./getIteratee")); const isArrayLike_1 = __importDefault(require("../isArrayLike")); const keys_1 = __importDefault(require("../keys")); /** * Creates a `find` or `findLast` function. * * @private * @param {Function} findIndexFunc The function to find the collection index. * @returns {Function} Returns the new find function. */ function createFind(findIndexFunc) { return function (collection, predicate, fromIndex) { var iterable = Object(collection); if (!(0, isArrayLike_1.default)(collection)) { var iteratee = (0, getIteratee_1.default)(predicate, 3); collection = (0, keys_1.default)(collection); predicate = function (key) { return iteratee(iterable[key], key, iterable); }; } var index = findIndexFunc(collection, predicate, fromIndex); return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; }; } exports.default = createFind;