将数字映射到JavaScript中的字符

假设我们有数字12145。我们需要编写一个函数,该函数根据以下规范将数字的数字映射到英文字母。字母将根据从1开始的索引进行映射,例如“ a”代表1,“ b”代表2,“ c”代表3,依此类推。

有几种映射数字的方法。让我们以上面的数字121415为例,

可以映射为-

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

它也可以是-

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

它也可以是-

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

依此类推,但12145不能是1,2,1,45,因为字母表中没有45的映射。因此,我们的函数应返回一个包含字母映射的所有排列的数组。

为此的代码将是-

示例

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));

输出结果

控制台中的输出-

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

以上是 将数字映射到JavaScript中的字符 的全部内容, 来源链接: utcz.com/z/345581.html

回到顶部