You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							1.0 KiB
						
					
					
				| define(['./_getLength', './_setup', './isNaN'], function (_getLength, _setup, _isNaN) {
 | |
| 
 | |
|   // Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.
 | |
|   function createIndexFinder(dir, predicateFind, sortedIndex) {
 | |
|     return function(array, item, idx) {
 | |
|       var i = 0, length = _getLength(array);
 | |
|       if (typeof idx == 'number') {
 | |
|         if (dir > 0) {
 | |
|           i = idx >= 0 ? idx : Math.max(idx + length, i);
 | |
|         } else {
 | |
|           length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;
 | |
|         }
 | |
|       } else if (sortedIndex && idx && length) {
 | |
|         idx = sortedIndex(array, item);
 | |
|         return array[idx] === item ? idx : -1;
 | |
|       }
 | |
|       if (item !== item) {
 | |
|         idx = predicateFind(_setup.slice.call(array, i, length), _isNaN);
 | |
|         return idx >= 0 ? idx + i : -1;
 | |
|       }
 | |
|       for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {
 | |
|         if (array[idx] === item) return idx;
 | |
|       }
 | |
|       return -1;
 | |
|     };
 | |
|   }
 | |
| 
 | |
|   return createIndexFinder;
 | |
| 
 | |
| });
 |