@newdash/newdash
Version:
javascript/typescript utility library
29 lines (28 loc) • 1.21 kB
JavaScript
;
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;