Created with new Array(count)
JavaScript 배열로 작업할 때 특이한 동작에 주목할 필요가 있습니다. new Array(count) 구문을 사용하여 생성된 배열로 표시됩니다.
설명된 대로 아래 코드 조각에서 new Array(count)로 생성된 희소 배열(정의되지 않은 요소가 포함된 배열)에 대해 map()을 호출하면 정의되지 않은 값의 배열이 생성됩니다.
var x = new Array(3); x.map(function() { return 0; }); // [undefined, undefined, undefined]
반대로, 동일한 작업을 수행하면 동일한 길이의 조밀한 배열(정의되지 않은 요소가 없는 배열)에 대한 연산은 예상대로 작동합니다.
var y = [undefined, undefined, undefined]; y.map(function() { return 0; }); // [0, 0, 0]
이러한 구별은 다음과 같은 사실에서 비롯됩니다. new Array(count)는 희소 배열을 생성합니다. 즉, 해당 요소에 기본값을 할당하지 않습니다. 결과적으로 map()은 정의되지 않은 요소에 대해 어떤 작업도 수행할 수 없으므로 정의되지 않은 값의 배열이 생성됩니다.
이 문제를 해결하려면 리터럴 배열 구문을 사용하여 조밀한 배열을 생성하거나 명시적으로 채울 수 있습니다. Array.prototype.fill()과 같은 메소드를 사용하여 원하는 기본값을 갖는 희소 배열.
위 내용은 `map()`이 `new Array(count)`로 생성된 배열에서 정의되지 않은 값을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!