由2-9字符串返回字母组合
问题描述: 给定由2-9组成的字符串,返回所有字母组合,2-9的映射关系可参考手机键盘。
示例输入: “23”
示例输出: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
function handle(str) {
function combine(strA, strB) {
const combineArr = [];
for (let i = 0; i < strA.length; i++) {
for (let j = 0; j < strB.length; j++) {
combineArr.push(`${strA[i]}${strB[j]}`);
}
}
return combineArr;
}
const letters = ['', '', 'abc', 'def', 'ghi', 'gkl', 'mno', 'pqrs', 'tuv', 'wxyz'];
let result = [];
for (let a = 0; a < str.length; a++) {
if (a === 0) {
result = combine(letters[str[a]], letters[str[a+1]]);
} else if (a !== str.length - 1) {
result = combine(result, letters[str[a+1]]);
}
}
return result;
}
console.log(handle('2345'));