找到按下哪些号码可以得到该单词(与电话号码数字问题相反)在 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 ]

更新于: 2020-11-24

109 次浏览

启动你的 职业生涯

完成课程获得认证

开始学习
广告