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()