27 lines
		
	
	
		
			539 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			539 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| var callable    = require("../../../object/valid-callable")
 | |
|   , ensureValue = require("../../../object/valid-value")
 | |
|   , some        = Array.prototype.some
 | |
|   , apply       = Function.prototype.apply;
 | |
| 
 | |
| module.exports = function (predicate/*, thisArg*/) {
 | |
| 	var k, self;
 | |
| 	self = Object(ensureValue(this));
 | |
| 	callable(predicate);
 | |
| 
 | |
| 	return some.call(
 | |
| 		self,
 | |
| 		function (value, index) {
 | |
| 			if (apply.call(predicate, this, arguments)) {
 | |
| 				k = index;
 | |
| 				return true;
 | |
| 			}
 | |
| 			return false;
 | |
| 		},
 | |
| 		arguments[1]
 | |
| 	)
 | |
| 		? k
 | |
| 		: -1;
 | |
| };
 |