19 lines
		
	
	
		
			503 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			503 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| var toPosInt = require("../number/to-pos-integer")
 | |
|   , value    = require("../object/valid-value")
 | |
|   , slice    = Array.prototype.slice;
 | |
| 
 | |
| module.exports = function (length/*, …fill*/) {
 | |
| 	var arr, currentLength;
 | |
| 	length = toPosInt(value(length));
 | |
| 	if (length === 0) return [];
 | |
| 
 | |
| 	arr = arguments.length < 2 ? [undefined] : slice.call(arguments, 1, 1 + length);
 | |
| 
 | |
| 	while ((currentLength = arr.length) < length) {
 | |
| 		arr = arr.concat(arr.slice(0, length - currentLength));
 | |
| 	}
 | |
| 	return arr;
 | |
| };
 |