31 lines
		
	
	
		
			877 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			877 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var eq = require('./eq'),
 | 
						|
    isArrayLike = require('./isArrayLike'),
 | 
						|
    isIndex = require('./_isIndex'),
 | 
						|
    isObject = require('./isObject');
 | 
						|
 | 
						|
/**
 | 
						|
 * Checks if the given arguments are from an iteratee call.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {*} value The potential iteratee value argument.
 | 
						|
 * @param {*} index The potential iteratee index or key argument.
 | 
						|
 * @param {*} object The potential iteratee object argument.
 | 
						|
 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
 | 
						|
 *  else `false`.
 | 
						|
 */
 | 
						|
function isIterateeCall(value, index, object) {
 | 
						|
  if (!isObject(object)) {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
  var type = typeof index;
 | 
						|
  if (type == 'number'
 | 
						|
        ? (isArrayLike(object) && isIndex(index, object.length))
 | 
						|
        : (type == 'string' && index in object)
 | 
						|
      ) {
 | 
						|
    return eq(object[index], value);
 | 
						|
  }
 | 
						|
  return false;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = isIterateeCall;
 |