Javascript

배열 생성

index.ys 2023. 10. 22. 19:07

배열의 생성

  • 배열의 인스턴스 생성
const arr1 = Array()
  • new 키워드로 배열의 인스턴스 생성
const arr2 = new Array()
  • 두가지 방법 모두 똑같은 배열 인스턴스를 생성하므로 결과는 똑같음
console.log(arr1, arr2)

  • 배열의 요소들을 직접입력하여 생성
const arr1 = Array(1, 2, 3)

//arr1=[1,2,3]
  • 배열의 길이를 입력하여 배열 생성
  • 인자로 1개의 숫자만 입력하면 입력된 숫자의 길이만큼 배열의 길이 생성
const arr1 = Array(50)
  • 50개의 빈배열 생성

  • fill()메소드
  • 배열을 생성할때 원하는 배열의 요소를 채우기
//정의 되지 않은 값으로 생성
const arr1 = Array(50).fill()
//숫자 1로 배열 생성
const arr2 = Array(50).fill(1)
console.log(arr1)

  • fill메서드의 인자로 숫자 1을 입력하여 1로 이루어진 50개의 배열 생성
console.log(arr2)
  • fill + 반복문 + reduce로 1부터 100까지 더하기
//정의되지 않은 값 100개 생성 undefined
const arr1 = Array(100).fill()
//첫번째 배열에 인덱스 + 1 값을 배열의 요소로 할당
for (let i = 0; i < arr1.length; i++) {
    arr1[i] = i + 1
}
//reduce로 더하기
const sum = arr1.reduce((현재값, 다음값) => 현재값 + 다음값)
console.log(sum) //5050
  • 배열 생성시 생성할 수 있는 요소의 최대 수는 2^32-1 만큼
  • 2^32-1 = 4,294,967,295
  • 4,294,967,295는 프로그래밍에서 32비트 부호 있는 정수 데이터 형식의 최대 값으로 사용 = number타입으로 표현할 수 있는 최대 크기
  • 4,294,967,295이상부터 bigInt로 표기
const arr2 = Array(Math.pow(2, 33) - 1)
  • 배열의 최대 크기 이상 생성하려고 할때 오류 발생
  • 2^33 -1은 유효하지 않은 배열의 길이 이기 때문에 생성 불가

  • 배열의 최대 길이만큼 배열 요소 생성하기
  • 4,294,967,295의 갯수만큼 배열 요소를 생성하는데 걸린 시간 = 2분 8.357초
  • 웬만하면 2^32 - 1 만큼의 배열을 생성하는 건 별로 좋은 생각은 아닌 거 같다.
//실행시작 시간
console.time()
const arr2 = Array(Math.pow(2, 32) - 1)
console.log(arr2)
//실행 종료시간
console.timeEnd()