💻 Dev

🛠️ 처음부터 만드는 Range — 숫자 범위로 배열 만들기

시작값부터 종료값까지 배열로 만드는 함수입니다. 루프 없이 범위를 생성할 때 유용합니다.

기본 구현


```javascript
const range = (start, end) => {
return Array.from({ length: end - start }, (_, i) => start + i);
};
range(1, 5); // [1, 2, 3, 4]
range(0, 3); // [0, 1, 2]
```
`Array.from()`의 두 번째 인자로 맵 함수를 전달해서 각 요소를 변환합니다.

Step 파라미터 추가


```javascript
const range = (start, end, step = 1) => {
const result = [];
for (let i = start; i < end; i += step) {
result.push(i);
}
return result;
};
range(0, 10, 2); // [0, 2, 4, 6, 8]
range(5, 1, -1); // [5, 4, 3, 2]
```

고급: 제너레이터 버전


```javascript
function* range(start, end, step = 1) {
for (let i = start; i < end; i += step) {
yield i;
}
}
// 지연 평가: 필요한 만큼만 생성
const gen = range(0, 1000000, 2);
for (const num of gen) {
if (num > 100) break;
console.log(num);
}
```
제너레이터는 메모리를 아낄 수 있어서 큰 범위를 다룰 때 좋습니다.

활용 예


```javascript
// 테이블 행 번호
const rows = range(1, 11); // [1, 2, ..., 10]
// 시간대 배열
const hours = range(0, 24); // [0, 1, ..., 23]
// 다른 함수와 조합
range(1, 5).map(x => x * x); // [1, 4, 9, 16]
```
배열이 필요하면 `Array.from()` 버전, 큰 범위를 처리해야 하면 제너레이터 버전을 선택하세요.
💬 0
👁 0 views

Comments (0)

💬

No comments yet.

Be the first to comment!