00001 var baseIteratee = require('./_baseIteratee'), 00002 isArrayLike = require('./isArrayLike'), 00003 keys = require('./keys'); 00004 00012 function createFind(findIndexFunc) { 00013 return function(collection, predicate, fromIndex) { 00014 var iterable = Object(collection); 00015 if (!isArrayLike(collection)) { 00016 var iteratee = baseIteratee(predicate, 3); 00017 collection = keys(collection); 00018 predicate = function(key) { return iteratee(iterable[key], key, iterable); }; 00019 } 00020 var index = findIndexFunc(collection, predicate, fromIndex); 00021 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; 00022 }; 00023 } 00024 00025 module.exports = createFind;