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.
		
		
		
		
		
			
		
			
				
					30 lines
				
				596 B
			
		
		
			
		
	
	
					30 lines
				
				596 B
			| 
											3 years ago
										 | /** | ||
|  |  * Obliterator Map Function | ||
|  |  * =========================== | ||
|  |  * | ||
|  |  * Function returning a iterator mapping the given iterator's values. | ||
|  |  */ | ||
|  | var Iterator = require('./iterator.js'); | ||
|  | var iter = require('./iter.js'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Map. | ||
|  |  * | ||
|  |  * @param  {Iterator} target - Target iterable. | ||
|  |  * @param  {function} mapper - Map function. | ||
|  |  * @return {Iterator} | ||
|  |  */ | ||
|  | module.exports = function map(target, mapper) { | ||
|  |   var iterator = iter(target); | ||
|  | 
 | ||
|  |   return new Iterator(function next() { | ||
|  |     var step = iterator.next(); | ||
|  | 
 | ||
|  |     if (step.done) return step; | ||
|  | 
 | ||
|  |     return { | ||
|  |       value: mapper(step.value) | ||
|  |     }; | ||
|  |   }); | ||
|  | }; |