JavaScript - Create an Array Containing 1...N Numbers
Here are some methods to create an array containing 1...N numbers
1. Using for Loop
The for loop iterates from 1 to N, adding each number to the array.
function create(N) {
let a = [];
for (let i = 1; i <= N; i++) {
a.push(i);
}
return a;
}
let n = 12;
let a = create(n);
console.log(a);
Output
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
In this example :
- Initializes an empty array newArr.
- Uses a for loop to iterate from 1 to N, adding each number to newArr with push().
- Returns the array.
2. Using Spread Operator
We can also use Spread Operator to create an array containing 1...N numbers. We use Array() constructor to create a new array of length N, and then use keys() method to get an iterator over the indices of the array.
function create(n) {
return [...Array(n).keys()].map(i => i + 1);
}
let n = 12;
let a = create(n);
console.log(a);
Output
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
In this example :
- Array(n).keys(): Generates an iterator of indices from 0 to N-1.
- [...Array(n).keys()]: Converts the iterator into an array.
- .map(i => i + 1): Maps each index to a number incremented by 1.
3. Using from() Method
The Array.from() method creates an array of length N. It uses a mapping function to fill the array, where each element is set as index + 1, generating a sequence from 1 to N.
function create(n) {
return Array.from({length: n}, (_, index) => index + 1);
}
let n = 12;
let a = create(n);
console.log(a);
Output
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
In this example :
- Array.from({ length: N }): Creates an array with N undefined elements.
- (_, index) => index + 1: Maps each index (starting from 0) to a number incremented by 1.
4. Using _.range() method
The _.range() method is used to create an array of numbers progressing from the given start value up to, but not including the end value.
// Requiring the lodash library
const _ = require("lodash");
let range_arr = _.range(1,5);
console.log(range_arr);
Output:
[ 1, 2, 3, 4 ]
In this example :
- _.range(1, 5): Creates an array starting at 1 and ending before 5.
- The resulting array is [1, 2, 3, 4].
5. Using a Generator Function
A generator function generateNumbers(N) yields numbers from 1 to N.
function* genNum(N) {
for (let i = 1; i <= N; i++) yield i;
}
const create = (N) => [...genNum(N)];
console.log(create(10));
Output
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
In this example :
- function* genNum(N): Declares a generator function that yields numbers from 1 to N.
- [...genNum(N)]: Uses the spread operator to convert the generator's yielded values into an array.
- create(10): Generates an array [1, 2, ..., 10].
6. Using Array.fill() and Array.map()
Array.fill() initializes an array with a specific value, while Array.map() creates a new array by applying a function to each element.
function create(n) {
return Array(n).fill().map((_, index) => index + 1);
}
let n = 12;
let a = create(n);
console.log(a);
Output
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
In this example :
- Array(N): Creates an array with N undefined elements.
- .fill(): Fills the array with undefined values (necessary to create an array to map over).
- .map((_, index) => index + 1): Maps each element to its index + 1.