Programing

문자열을 숫자 node.js로 변환

lottogame 2021. 1. 11. 07:28
반응형

문자열을 숫자 node.js로 변환


req.params를 Number로 변환하려고합니다. 이것이 제가 year param에 대한 스키마에서 정의한 것이기 때문입니다.

나는 시도했다

req.params.year = parseInt( req.params.year, 10 );  

Number( req.params.year);

1*req.params.year;

그러나 그들 중 아무것도 작동하지 않습니다. 무언가를 설치해야합니까?


무언가를 설치할 필요가 없습니다.

parseInt(req.params.year, 10);

제대로 작동해야합니다.

console.log(typeof parseInt(req.params.year)); // returns 'number'

parseInt를 사용하면 출력은 무엇입니까? 여전히 문자열입니까?


parseInt () 사용은 주로 실패하지 않기 때문에 나쁜 생각입니다. 또한 INFINITY의 경우처럼 일부 결과가 예상치 못한 결과가 될 수 있기 때문입니다.
다음은 예상치 못한 동작을 처리하는 기능입니다.

function cleanInt(x) {
    x = Number(x);
    return x >= 0 ? Math.floor(x) : Math.ceil(x);
}

아래 테스트 사례의 결과를 참조하십시오.

console.log("CleanInt: ", cleanInt('xyz'), " ParseInt: ", parseInt('xyz'));
console.log("CleanInt: ", cleanInt('123abc'), " ParseInt: ", parseInt('123abc'));
console.log("CleanInt: ", cleanInt('234'), " ParseInt: ", parseInt('234'));
console.log("CleanInt: ", cleanInt('-679'), " ParseInt: ", parseInt('-679'));
console.log("CleanInt: ", cleanInt('897.0998'), " ParseInt: ", parseInt('897.0998'));
console.log("CleanInt: ", cleanInt('Infinity'), " ParseInt: ", parseInt('Infinity'));

결과:

CleanInt:  NaN  ParseInt:  NaN
CleanInt:  NaN  ParseInt:  123
CleanInt:  234  ParseInt:  234
CleanInt:  -679  ParseInt:  -679
CleanInt:  897  ParseInt:  897
CleanInt:  Infinity  ParseInt:  NaN

완전한 대답 은 아니므로 이것은 여전히 ​​매우 유효한 parseInt에 대한 정보를 보충하기위한 것입니다. Express는 req 또는 res 객체를 전혀 수정할 수 없도록 허용합니다 (불변). 따라서이 데이터를 효과적으로 수정 / 사용하려면 다른 변수에 복사해야합니다 (var year = req.params.year).

참조 URL : https://stackoverflow.com/questions/37271445/convert-string-to-number-node-js

반응형