본문 바로가기

Javascript

자바스크립트 연속된 숫자 배열 생성하는 방법

연속된 숫자 배열이란?

코딩 테스트 문제를 풀다 보면, 길이가 N인 배열에 1부터 N까지의 값을 순서대로 넣은 배열이 필요할 때가 있습니다. 이러한 배열을 지칭하는 특별한 용어가 있는 것은 아닙니다. 이 글에서는 편의를 위해 이러한 배열을 연속된 숫자 배열이라고 칭하겠습니다. 순차 배열, 숫자 배열 등의 이름도 가능해 보입니다.

 

 

연속된 숫자 배열 생성 방법

길이가 N인 배열에 1부터 N까지의 값을 넣어 배열을 생성하는 방법은 여러 가지가 있습니다. 다음은 자바스크립트에서 이러한 배열을 생성하는 방법들입니다. 길이가 5인 배열을 기준으로 설명하겠습니다.

 

 

(1) for 반복문 사용

let arr = [];
for (let i = 1; i <= 5; i++) {
  arr.push(i);
}
console.log(arr); // 출력: [1, 2, 3, 4, 5]

 

for 반복문을 활용하는 전통적인 방식으로, 반복문을 이용해 배열에 순차적으로 값을 할당합니다. 이 방법은 가장 기본적이며 직관적인 접근 방식으로, 초기화하고자 하는 배열에 명시적으로 값을 하나씩 추가합니다.

 

 

(2) Array.from() 사용

let arr = Array.from({length: 5}, (_, i) => i + 1);
console.log(arr); // 출력: [1, 2, 3, 4, 5]

 

Array.from() 함수는 새로운 배열을 생성하는데 사용되며, 여기서 길이와 매핑 함수를 정의하여 연속된 값을 가진 배열을 간결하게 생성할 수 있습니다. 연속된 숫자를 생성하기 위해 요소의 값은 필요하지 않고 인덱스만 필요하기 때문에, 첫 번째 매개변수 자리에 _를 사용하여 이 매개변수가 무시될 것임을 명시적으로 표시했습니다.

 

 

(3) 스프레드 연산자(...)와 keys() 메서드 사용

let arr = [...Array(5).keys()].map(i => i + 1);
console.log(arr); // 출력: [1, 2, 3, 4, 5]

 

스프레드 연산자와 Array.keys() 메서드를 조합하여 배열의 인덱스를 기반으로 새 배열을 생성합니다. 이 방식은 인덱스를 활용해 각 요소의 값을 설정할 때 유용하며, 코드를 간결하게 만들 수 있는 장점이 있습니다.

 

 

(4) Spread 연산자(...)와 Array() 생성자 사용

let arr = [...Array(5)].map((_, i) => i + 1);
console.log(arr); // 출력: [1, 2, 3, 4, 5]

 

이 방법은 Array() 생성자와 스프레드 연산자를 함께 사용하여 간결하게 배열을 생성할 수 있습니다. Array(n)은 길이가 n인 빈 배열을 생성하고, 이를 스프레드 연산자와 함께 사용하면 배열의 인덱스를 기반으로 새로운 배열을 만들 수 있습니다.

 

 

(5) Array() 생성자와 fill(), map() 메서드 사용

let arr = Array(5).fill(0).map((_, i) => i + 1);
console.log(arr); // 출력: [1, 2, 3, 4, 5]

 

Array() 생성자로 배열을 초기화하고, fill() 메서드로 임시 값으로 채운 뒤, map() 메서드를 사용해 각 요소에 원하는 값을 할당합니다. 이 방법은 연속된 값으로 배열을 채우고자 할 때 효과적인 방식입니다.

 

 

제가 조사해서 찾은 방법은 여기까지입니다. 혹시 다른 추가적인 방법을 발견하게 된다면, 이 글에 계속 업데이트하도록 하겠습니다. 알고 있는 다른 방법이 있으시다면 댓글로 남겨주시면 감사하겠습니다.