알고리즘을 풀다가 비슷하지만 다른 Array()와 Array.from() 의 차이점에 대해 알아보려 한다.
JS의 표준 내장 객체인 Array 의 생성자를 호출합니다.
new Array()
new Array(element0)
new Array(element0, element1)
new Array(element0, element1, /* … ,*/ elementN)
new Array(arrayLength)
Array()
Array(element0)
Array(element0, element1)
Array(element0, element1, /* … ,*/ elementN)
Array(arrayLength)
elementN
숫자인 경우를 제외하고 지정된 요소로 초기화 됩니다.
arrayLiegth
정수인 경우 해당 숫자의 길이로 새 JS배열을 반환 합니다.
console.log("Array() : ", Array());
console.log("Array(3) : ", Array(3));
...
Array() : []
Array(3) : [ <3 empty items> ] // 요소가 들어갈 수 있는 슬롯을 만든다.
얕은 복사된 새 인스턴스를 생성합니다.
Array.from(arrayLike)
Array.from(arrayLike, [mapFn])
Array.from(arrayLike, [mapFn, thisArg])
arrayLike
배열로 변환할 반복 가능하거나 배열과 유사한 객체
mapFn
배열의 모든 요소를 호출하는 함수입니다. 제공되면 배열에 추가할 모든 값이 이 함수를 통해 먼저 전달되고 mapFn
대신 의 반환 값이 배열에 추가됩니다. 이 함수는 다음 인수로 호출됩니다.
thisArg
this
를 실행할 때 사용할 값입니다 mapFn
. -> 초기값이라고 생각하면 될 것 같다.
console.log("Array.from({length: 3}) : ", Array.from({ length: 3 }));
console.log("Array.from() : ", Array.from(3));
...
Array.from({length: 3}) : [ undefined, undefined, undefined ]
// {length: num} : 주어진 객체의 length속성의 값의 길이로 초기화 된다.
// undefined 로 채워진 배열
Array.from() : []
Array()
는 빈 배열 또는 특정 길이의 배열을 만드는 데 사용되고,
Array.from()
은 매핑함수를 적용하는 옵션과 함께 반복 가능하거나 배열과 유사한 객체에서 배열을 만드는데 사용 된다. 상황에 따라 잘 사용하면 될 것 같다.