웹_프론트엔드/JavaScript

[JS] 연속된 정수 배열을 만드는 다양한 방법

young 2023. 7. 14. 13:04
반응형

기본적인 사용자 지정 함수

function getNumberArray (N) {
    let a = Array(N), b = 0;
    while(b < N) a[b++] = b;
    return a;
}

getNumberArray(10);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

ES6+ API을 활용한 1줄 짜리 방법들 - 0으로 시작하는 기본 수열

Array.from(Array(10).keys())
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[...Array(10).keys()]
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Array.apply(null, {length: 10}).map(Number.call, Number)
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

ES6+ API을 활용한 1줄 짜리 방법들 - 화살표 함수를 이용한 등차 또는 등비수열

Array.from({length: 10}, (_, i) => i + 1)
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

[ ...Array(10).keys()].map( i => i + 1);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Array(10).fill().map((_, i) => i + 1);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Array(endNumber - startNumber + 1)
    .fill(0)
    .map((_, id) => startNumber + id)
// startNumber부터 endNumber까지의 배열

Array.from(Array(10), (_, i) => i + 1)
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

속도 차이

https://jsbench.me/zskijebb24/1

 

JSBench.me - JavaScript performance benchmarking playground

 

jsbench.me

 

반응형