Computer >> Máy Tính >  >> Lập trình >> Javascript

Ánh xạ số thành ký tự trong JavaScript

Giả sử chúng ta có số 12145. Chúng ta phải viết một hàm ánh xạ các chữ số của số đó sang bảng chữ cái tiếng Anh theo các tiêu chuẩn sau. Các bảng chữ cái phải được ánh xạ theo chỉ mục dựa trên 1, như 'a' cho 1 và 'b' cho 2 'c' cho 3, v.v.

Có thể có một số cách để ánh xạ một số. Hãy lấy con số 121415 ở trên làm ví dụ,

Nó có thể được ánh xạ dưới dạng -

12145->1,2,1,4,5->a,b,a,d,e

Nó cũng có thể -

12145->12,1,4,5->l,a,d,e

Nó cũng có thể -

12145->12,14,5->l,n,e

v.v., nhưng 12145 không thể là 1,2,1,45 vì không có ánh xạ cho 45 trong bảng chữ cái.

Mã cho điều này sẽ là -

Ví dụ

const num = 12145;
const mapToAlphabets = num => {
   const numStr = '' + num;
   let res = [];
   const shoveElements = (left, right) => {
      if (!left.length) {
         res.push(right.map(el => {
            return (+el + 9).toString(36);
         }).join(''));
         return;
      };
      if(+left[0] > 0){
         shoveElements(left.slice(1), right.concat(left[0]));
      };
      if(left.length >= 2 && +(left.slice(0, 2)) <= 26){
         shoveElements(left.slice(2), right.concat(left.slice(0, 2)));
      };
   };
   shoveElements(numStr, []);
   return res;
}
console.log(mapToAlphabets(num));

Đầu ra

Đầu ra trong bảng điều khiển -

[ 'abade', 'abne', 'aude', 'lade', 'lne' ]