Open In App

JavaScript - Create an Array Containing 1...N Numbers

Last Updated : 31 Dec, 2024
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report

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.

JavaScript
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.

JavaScript
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.

JavaScript
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.

JavaScript
// 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.

JavaScript
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.

JavaScript
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.

Similar Reads