找到按下哪些号码可以得到该单词(与电话号码数字问题相反)在 JavaScript 中
旧式键盘型手机中的数字到字母的映射关系如下:-
const mapping = { 1: [], 2: ['a', 'b', 'c'], 3: ['d', 'e', 'f'], 4: ['g', 'h', 'i'], 5: ['j', 'k', 'l'], 6: ['m', 'n', 'o'], 7: ['p', 'q', 'r', 's'], 8: ['t', 'u', 'v'], 9: ['w', 'x', 'y', 'z'] };
我们需要编写一个 JavaScript 函数,该函数接收一个字母字符串并返回输入该字符串时按下的数字组合。
例如 −
如果字母串为 −
const str = 'mad';
那么输出号码应为 −
const output = [6, 2, 3];
示例
代码如下 −
const mapping = { 1: [], 2: ['a', 'b', 'c'], 3: ['d', 'e', 'f'], 4: ['g', 'h', 'i'], 5: ['j', 'k', 'l'], 6: ['m', 'n', 'o'], 7: ['p', 'q', 'acc', 's'], 8: ['t', 'u', 'v'], 9: ['w', 'x', 'y', 'z'] }; const convertToNumeral = (str = '') => { const entries = Object.entries(mapping); const res = entries.reduce((acc, [v, letters]) => { letters.forEach(l => acc[l] = +v); return acc; }, {}); const result = Array.from(str, (el) => { return res[el]; }); return result; }; console.log(convertToNumeral('mad'))
输出
而控制台中的输出将为 −
[ 6, 2, 3 ]
广告