맵 메서드는 배열의 요소를 변환하기 위한 JavaScript의 강력한 도구입니다. 그러나 new Array(count)로 생성된 배열에서 이를 사용하면 예상치 못한 결과가 발생할 수 있습니다.
new Array(count) 구문은 지정된 수의 요소로 배열을 생성합니다. . 그러나 이러한 요소는 기본값으로 초기화되지 않으므로 정의되지 않은 값으로 배열이 채워집니다.
map 메서드는 배열의 각 요소에 함수를 적용하고 반환합니다. 수정된 요소가 포함된 새 배열. new Array(count)로 생성되고 정의되지 않은 값으로 채워진 배열의 경우, undefed는 JavaScript에서 진실로 평가되지 않으므로 map 메소드는 값을 변경하지 않습니다.
다음 코드를 고려하세요.
var x = new Array(3); console.log(x.map(function() { return 0; }));
이 코드는 정의되지 않은 세 개의 요소가 있는 배열을 만듭니다. 맵 방법을 적용하면 요소가 변경되지 않으며 출력은 정의되지 않은 값이 있는 배열로 유지됩니다.
이 문제를 해결하려면 배열을 임의의 값으로 채울 수 있습니다. (정의되지 않은 경우에도) Array.prototype.fill()을 사용합니다. 이렇게 하면 지도 메소드에 사용할 값이 포함됩니다.
var x = new Array(3).fill(undefined); console.log(x.map(function() { return 0; })); // [0, 0, 0]
위 내용은 `new Array(count)`로 생성된 배열에서 JavaScript의 `map` 메소드가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!