Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 숫자를 문자로 변환

<시간/>

사용자를 고유하게 식별하기 위해 고유한 사용자 ID를 제공해야 하는 로그인 시스템이 있다고 가정합니다. 그리고 명백한 보안상의 이유로 사용자 ID를 난독화하여 숫자를 추측하기가 상당히 어렵도록 합니다.

기본적으로 두 가지 함수를 작성해야 합니다.

  • 인코딩(),

  • 디코드()

첫 번째 함수는 숫자 입력을 기본 26 알파벳 매핑으로 변환해야 합니다. 그리고 두 번째 함수는 알파벳 매핑을 원래 숫자로 다시 변환해야 합니다.

대부분의 해싱 알고리즘이 앞뒤로 변환을 제공하지 않기 때문에 이것이 매우 실용적이지는 않지만 이 질문의 목적을 위해 우리는 그것을 고려하지 않습니다.

예를 들어 - 숫자가 31이면

encode(31) = 'ea'
and, decode('ea') = 31

예시

이에 대한 코드는 -

const num = 31;
const encode = num => {
   let res = '';
   const legend = 'zabcdefghijklmnopqrstuvwxy';
   while(num){
      const rem = num % (legend.length);
      res += legend[rem];
      num = (Math.floor(num / legend.length));
   };
   return res;
};
const decode = str => {
   let num = 0;
   const legend = 'zabcdefghijklmnopqrstuvwxy';
   for(let i = 0; i < str.length; i++){
      const ind = legend.indexOf(str[i]);
      num += (ind * Math.pow(legend.length, i));
   };
   return num;
}
console.log(encode(num));
console.log(decode('ea'));

출력

콘솔의 출력은 -

ea
31