There are situations, when during the development of an application, there is a need to create a sequence of data, such as a sequence of numbers that can serve as identifiers.
Some programming languages have special built-in range
functions that can generate such data, but JavaScript does not.
In this article, we will look at how to implement a similar function in JavaScript and how to use it in different situations.
The range
function in JavaScript can be useful in cases where you need to generate a sequence of integers or other data types with a certain amount of spacing between values. Also, as an example, you can give a sequence of dates, with an interval of a day, a week, or a month.
However, let’s begin with an easier example and use the range
function to generate a sequence of numbers from 1 to 10 like this:
range(1, 10); // [1, 2, 3, ..., 10]
Below you can see one of the implementations of the range function to generate a sequence of numbers:
function range(start, end) {
const seq = [];
for (let i = start; i <= end; i++) {
seq.push(i);
}
return seq;
}
In this example above, the range
function creates a new array seq
and fills it with integers using a for
loop. After the array is filled, the function returns it.
You can change the step between elements of a sequence by adding a third argument to the function:
function range(start, end, step) {
const seq = [];
for (let i = start; i <= end; i += step) {
seq.push(i);
}
return seq;
}
range(1, 10, 2); // [1, 3, 5, 7, 9]
Here, the range
function returns an array of odd numbers from 1 to 10 since the initial value is set to 1 and the step is set to 2. You can also change the direction of the sequence generation by specifying a negative step like this:
function range(start, end, step) {
const seq = [];
for (let i = start; i >= end; i += step) {
seq.push(i);
}
return seq;
}
range(10, 1, -2); // [10, 8, 6, 4, 2]
Note that the range
function only works with integers. If you need to generate a sequence of fractional numbers, then you need to write an appropriate function or use other ways to generate a sequence with fractional numbers.
The range
function can be used to create a sequence of strings, such as a sequence of letters from the alphabet:
function range(start, end, step = 1) {
const start = start.charCodeAt(0);
const end = end.charCodeAt(0);
const seq = [];
for (let i = start; i <= end; i += step) {
seq.push(String.fromCharCode(i));
}
return seq;
}
range('a', 'z'); // ['a', 'b', 'c', ..., 'z']
In this example, we initiate the charCodeAt
method on the start and end value of the sequence. The charCodeAt
method returns the numeric value for the character at the specified index.
Next, using the for
loop, iterate over the elements of the sequence and set the values using the String.fromCharCode()
method. The static method String.fromCharCode()
returns a string created from the specified character code. After the array is filled, the function returns it.
In the previous examples, the range
function generates either a sequence of integers or strings from start to end values with a given step. However, you can also create a range
function with more complex logic that will work on different data types at the same time.
To summarize, we have analyzed the range
function in JavaScript, which allows you to generate a sequence of numbers and strings with a certain step.
We learned how to implement such a function with a for
loop and how to use it in various situations. Use the range
function to simplify your code and speed up development.