parseInt를 사용하여 Array.map()의 숫자를 구문 분석
Javascript에서 Array.map() 함수는 각 숫자에 콜백 함수를 적용합니다. 배열의 요소입니다. 그러나 이 컨텍스트에서 parseInt() 함수를 사용하면 예상치 못한 결과가 나올 수 있습니다.
제공된 예에서:
['1','2','3'].map(parseInt);
parseInt()는 [1, NaN, NaN]을 생성합니다. 예상했던 [1, 2, 3] 대신. 이 동작은parseInt()가 구문 분석할 문자열과 선택적 기수(기본)라는 두 개의 인수를 사용하기 때문에 발생합니다.
Array.map() 콜백 함수는 요소 값, 인덱스 및 요소의 세 가지 매개 변수를 제공합니다. 배열 자체. 기수를 지정하지 않고 parsInt()를 사용하는 경우 두 번째 매개변수(인덱스)를 기수로 사용합니다.
['1','2','3']의 경우,parseInt에서 사용하는 기수 값 ()는 0, 1, 2가 됩니다. 기수 1은 유효하지 않고 3은 이진수(기수 2)로 표현할 수 없으므로 구문 분석이 실패하여 결과는 다음과 같습니다. NaN.
이 동작을 수정하려면 래퍼 함수 내에서 parseInt()에 명시적인 기수를 제공하세요.
['1','2','3'].map(function(num) { return parseInt(num, 10); });
또는 ES2015 구문을 사용하세요.
['1','2','3'].map(num => parseInt(num, 10));
10의 기수를 지정함으로써 우리는 parsInt()가 문자열을 올바르게 구문 분석하도록 보장합니다. 정수.
위 내용은 `parseInt()`가 포함된 `Array.map()`이 JavaScript에서 예기치 않은 결과를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!