JavaScript 의 parseInt()의 묘 용 에 대하 여 말씀 드 리 겠 습 니 다.
3024 단어 JavaScriptparseInt()
이 블 로 그 를 쓴 이 유 는 오늘 leetcode 의 매일 한 문제 로문자열 변환 정수(atoi)문제 입 니 다.관심 이 있 으 면 제목 이름 을 클릭 하여 구체 적 인 설명 을 볼 수 있 습 니 다.제 가 여러 번 debug 를 성공 적 으로 제출 한 후에 댓 글 구역 에 가서 사내 들 의 문제 풀이 방향 을 보 았 습 니 다.보고 나 서 자 바스 크 립 트 에서 parseInt()가 이렇게 우수 하 다 는 것 에 감탄 을 금치 못 했 습 니 다."이것 은 나 에 게 우리 가 더 이상 익숙 하지 않다 고 생각 하 는 api 를 알려 주 었 다.아마도 우 리 는 진정한 의미 에서 파악 하지 못 했 을 것 이다."
나의 해답
/**
* @param {string} str
* @return {number}
*/
var myAtoi = function(str) {
str = str.trim();
//
var firstChar = str.charAt(),res = '',regSymbol = /^[\-\+]{1}/,regNumber = /^[0-9]{1}/;
if(!regSymbol.test(firstChar) && !regNumber.test(firstChar)){
return 0;
}
// + -
if(regSymbol.test(firstChar)){
var sliceStr = str.slice(1,str.length);
for(var i=0;i<sliceStr.length;i++){
if(regNumber.test(sliceStr.charAt(i))){
res += sliceStr.charAt(i);
}else{
break;
}
}
(res.length) ? res = parseInt(firstChar + res) : res = 0;
if(firstChar == '-' && res < Math.pow(-2,31)){
res = Math.pow(-2,31);
}
if(firstChar == '+' && res > Math.pow(2,31) - 1){
res = Math.pow(2,31) - 1;
}
return res;
}
//
if(regNumber.test(firstChar)){
var sliceStr = str;
for(var i=0;i<sliceStr.length;i++){
if(regNumber.test(sliceStr.charAt(i))){
res += sliceStr.charAt(i);
}else{
break;
}
}
if(parseInt(res) > Math.pow(2,31) - 1){
res = Math.pow(2,31) - 1;
}
return res;
}
};
사내 의 해답
/**
* @param {string} str
* @return {number}
*/
var myAtoi = function(str) {
const number = parseInt(str, 10);
if(isNaN(number)) {
return 0;
} else if (number < Math.pow(-2, 31) || number > Math.pow(2, 31) - 1) {
return number < Math.pow(-2, 31) ? Math.pow(-2, 31) : Math.pow(2, 31) - 1;
} else {
return number;
}
};
비 교 를 통 해 우 리 는 자바 script 의 parseInt()이 빈 문자열,이니셜 판단,number 형식 결과 반환 등 일련의 작업 을 한 것 을 알 게 되 었 다.오늘 의 매일 한 문제 의 수요 와 완벽 하 게 맞 아 떨 어 졌 습 니 다.parseInt()로 이 문 제 를 해결 하 는 것 은 너무 시원 하지 않 습 니 다.자 바스 크 립 트 의 parseInt()에 대한 묘 미 를 담 은 이 글 은 여기까지 소개 되 었 습 니 다.자 바스 크 립 트 parseInt()에 관 한 더 많은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.