将数字映射到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' ]
热门推荐
10 幼儿祝福语押韵句子简短
11 奥运早安祝福语简短英文
12 海员考试祝福语简短高级
13 离职横幅升职祝福语简短
14 店家搬家祝福语大全简短
15 横幅家庭生日祝福语简短
16 周末新人祝福语短句简短
17 男友人新婚祝福语简短
18 安徽疫情祝福语简短英语