> 웹 프론트엔드 > JS 튜토리얼 > `new Array(count)`로 생성된 배열에서 JavaScript의 `map` 메소드가 실패하는 이유는 무엇입니까?

`new Array(count)`로 생성된 배열에서 JavaScript의 `map` 메소드가 실패하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-11 11:23:14
원래의
407명이 탐색했습니다.

Why Does JavaScript's `map` Method Fail on Arrays Created with `new Array(count)`?

배열 생성 및 매핑 메서드 동작 이해

맵 메서드는 배열의 요소를 변환하기 위한 JavaScript의 강력한 도구입니다. 그러나 new Array(count)로 생성된 배열에서 이를 사용하면 예상치 못한 결과가 발생할 수 있습니다.

배열 생성

new Array(count) 구문은 지정된 수의 요소로 배열을 생성합니다. . 그러나 이러한 요소는 기본값으로 초기화되지 않으므로 정의되지 않은 값으로 배열이 채워집니다.

map 메서드 동작

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿