> 웹 프론트엔드 > JS 튜토리얼 > `Array#map`과 함께 사용할 때 `parseInt`가 `NaN`을 반환하는 이유는 무엇입니까?

`Array#map`과 함께 사용할 때 `parseInt`가 `NaN`을 반환하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-14 15:02:12
원래의
664명이 탐색했습니다.

Why Does `parseInt` Return `NaN` When Used with `Array#map`?

parseInt가 Array#map을 사용하여 NaN을 반환하는 이유는 무엇입니까?

Mozilla 개발자 네트워크에서는 [1,4,9].map( Math.sqrt)는 [1,2,3]을 반환합니다. 그러나 map을 사용하여 배열 리터럴 ['1','2','3']에 parsInt를 적용하면 [1, NaN, NaN]이 생성됩니다. 이 동작은 Firefox 3.0.1 및 Chrome 0.3에서 발생합니다.

근본 원인

세 가지 매개변수(요소 값, 해당 인덱스와 순회된 배열 객체입니다. map 내에서 parseInt가 호출되면 인덱스는 두 번째 인수가 되며, 이는 기수(변환되는 숫자 체계의 기준)로 해석됩니다.

앞서 언급한 경우, parInt는 기수 값 0으로 호출됩니다. , 1 및 2입니다. 앞에 0이 없는 정수의 경우 기본적으로 기수는 10입니다. 그러나 기수 1은 유효하지 않으며 기수 2는 숫자 3을 지원하지 않습니다. 따라서 parseInt는 두 번째 및 세 번째 요소에 대해 NaN을 반환합니다.

해결책

To 이를 수정하려면 래퍼 기능을 활용할 수 있습니다.

['1','2','3'].map(function(num) { return parseInt(num, 10); });
로그인 후 복사

또는 ES2015 :

['1','2','3'].map(num => parseInt(num, 10));
로그인 후 복사

기수를 10으로 명시적으로 제공함으로써 parseInt가 문자열을 밑이 10인 정수로 올바르게 해석하도록 보장합니다.

위 내용은 `Array#map`과 함께 사용할 때 `parseInt`가 `NaN`을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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