JSFiddle - React, Tailwind, and code Playground
by Oski Krawczyk
JavaScript
//
// Syntax: Array.Range(repeat, func)
// Syntax: Array.Range([start, end], func);
// Syntax: Array.Range([start, end, step], func);
//
Array.implement({
Range: function(size, func) {
var start = 0;
var end = 0;
var step = 1;
var arr = [];
/* Fix paramiters */
if ( $type(size) == "array" ) {
arr = this;
} else {
func = size;
size = this;
}
/* Define the Range */
if ($type(size) == "number") {
end = size
} else {
start = size[0];
end = size[1];
if ( size.length == 3 ) {
step = size[2];
}
}
/* Execute the function */
for (var counter=start; counter<=end; counter+=step) {
arr[counter] = func(counter);
}
return arr;
}
});
console.log( Array.Range(5, function(index){ return new Element('div', {html:index}); }));
console.log( Array.Range([3, 6], function(index){ return new Element('div', {html:index}); }));
console.log( Array.Range([3, 10, 2], function(index){ return new Element('div', {html:index}); }));
staggered = Array.Range([2, 20, 2], function(index){ return new Element('div', {html:index}); });
staggered = staggered.Range([1, 19, 2], function(index){ return new Element('span', {html:index}); });
console.log(staggered);