몸과 마음이 건전한 SW 개발자

자바스크립트 [빈 배열을 요소로 가진 배열 만들기] 본문

개발 언어 입문/자바스크립트 문법

자바스크립트 [빈 배열을 요소로 가진 배열 만들기]

스위태니 2024. 3. 17. 01:22

코드

// 자바스크립트로 파이썬 리스트 컴프리헨션과 유사한 기능 만들기
// arr = [[] for _ in range(n)]
const n = 5; // 원하는 길이
const arr1 = Array.from({ length: n }, () => []);
const arr2 = [...Array(n)].map(() => []);
const arr3 = Array(n).fill().map(() => [])
// 예를 들어, 각 배열에 인덱스 번호를 push하고 싶다면
for (let i = 0; i < n; i++) {
    arr1[i].push(i);
    arr2[i].push(i);
    arr3[i].push(i);
  }
console.log(arr1)
console.log(arr2)
console.log(arr3)

console.time('Array.from');
const arr4 = Array.from({ length: 1000000 }, () => []);
console.timeEnd('Array.from');

console.time('Spread and map');
const arr5 = [...Array(1000000)].map(() => []);
console.timeEnd('Spread and map');

console.time('Array.fill and map');
const arr6 = Array(1000000).fill().map(() => []);
console.timeEnd('Array.fill and map');

결과

[ [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]
[ [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]
[ [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]
Array.from: 153.349ms
Spread and map: 66.776ms
Array.fill and map: 59.871ms

느낀점

  • 위에 2개는 gpt가 추천해준 방법이고 아래 fill을 사용한 것은 내가 사용하는 방법인데 시간이 제일 빠르게 나오네??