_isIterateeCall.js (877B)
1 var eq = require('./eq'), 2 isArrayLike = require('./isArrayLike'), 3 isIndex = require('./_isIndex'), 4 isObject = require('./isObject'); 5 6 /** 7 * Checks if the given arguments are from an iteratee call. 8 * 9 * @private 10 * @param {*} value The potential iteratee value argument. 11 * @param {*} index The potential iteratee index or key argument. 12 * @param {*} object The potential iteratee object argument. 13 * @returns {boolean} Returns `true` if the arguments are from an iteratee call, 14 * else `false`. 15 */ 16 function isIterateeCall(value, index, object) { 17 if (!isObject(object)) { 18 return false; 19 } 20 var type = typeof index; 21 if (type == 'number' 22 ? (isArrayLike(object) && isIndex(index, object.length)) 23 : (type == 'string' && index in object) 24 ) { 25 return eq(object[index], value); 26 } 27 return false; 28 } 29 30 module.exports = isIterateeCall;