Is there a way to create an Integer range?
In other languages, I can use Range(1, 9) to create [1, 2, ... 8] easily.
Is there a simple way to create the list in JavaScript?
Is there a way to create an Integer range?
In other languages, I can use Range(1, 9) to create [1, 2, ... 8] easily.
Is there a simple way to create the list in JavaScript?
const range = (start, end) => Array.from({length: end - start}, (_, i) => start + i);
console.log(range(1,5));
That creates an array with the indexes. If you need it in a loop, an iterator might be better:
function* range(start, end = Infinity) {
for(let i = start; i < end; i++)
yield i;
}
Which can be used as:
for(const v of range(1, 10))
console.log(v);
You can also turn an iterator into an array easily:
console.log([...range(0, 10)]);
Is there a simple way to create the list in JavaScript?
No, but you can create your own solution using ES features like map and spread syntax.
var range = (start, end) => start < end ? [...Array(end - start)].map((_, i) => start + i) : [];
console.log(range(1,9));
Also, returns an empty array for case when start is greater than end.
(1,9)Range(9,1). This case is also not handledstart > end I returns just an empty array.You can create a reusable function called Range and loop over the start and end values. You can further add a if condition that ensures that the start value is always less than the end value.
function Range(start, end){
var rangeArray = [];
if(start < end){
for(var i=start; i<end; i++){
rangeArray.push(i);
}
}
return rangeArray;
};
console.log(Range(1,9));
console.log(Range(2,9));
console.log(Range(5,12));
console.log(Range(16,12));
console.log(Range(30,12));