JS实现电话号码的字母组合算法示例


Posted in Javascript onFebruary 26, 2019

本文实例讲述了JS实现电话号码的字母组合算法。分享给大家供大家参考,具体如下:

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

JS实现电话号码的字母组合算法示例

示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

说明:

尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。

var letterCombinations = function(digits) {
  const mappings = {
    '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']
  };
  if (!digits || digits.length === 0) return [];
  if (digits.length === 1) {
    return mappings[digits];
  }
  let result = [];
  let set1 = letterCombinations(digits.substr(0, 1));
  let set2 = letterCombinations(digits.substr(1));
  for (let i = 0; i < set1.length; i++) {
    for (let j = 0; j < set2.length; j++) {
    result.push(set1[i] + set2[j]);
    }
  }
  return result;
  };
console.log(letterCombinations('23'))
var letterCombinations1 = function(digits) {
 var map = {
 "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"]
 };
 var rtn = map[digits[0]];
 digits = digits.substr(1);
 digits.split("").forEach(function(digit) {
 var t = [];
 map[digit].forEach(function(letter) {
  t = t.concat(rtn.map(function(item) {
  return item + letter;
  }));
 });
 rtn = t;
 });
 return rtn === undefined ? [] : rtn;
};
console.log(letterCombinations1('32'))

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JS实现电话号码的字母组合算法示例

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
模仿jQuery each函数的链式调用
Jul 22 Javascript
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
Jan 17 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
javascript中数组的多种定义方法和常用函数简介
May 09 Javascript
JS+CSS实现仿msn风格选项卡效果代码
Oct 22 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
Mar 16 Javascript
详解angular2实现ng2-router 路由和嵌套路由
Mar 24 Javascript
css和js实现弹出登录居中界面完整代码
Nov 26 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 27 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 Javascript
JS实现的合并两个有序链表算法示例
Feb 25 #Javascript
JS实现判断有效的数独算法示例
Feb 25 #Javascript
js实现通过开始结束控制的计时器
Feb 25 #Javascript
js实现倒计时器自定义时间和暂停
Feb 25 #Javascript
JS module的导出和导入的实现代码
Feb 25 #Javascript
js实现多个倒计时并行 js拼团倒计时
Feb 25 #Javascript
js实现网页同时进行多个倒计时功能
Feb 25 #Javascript
You might like
如何在PHP中使用Oracle数据库(4)
2006/10/09 PHP
PHP+DBM的同学录程序(5)
2006/10/09 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
Python中list初始化方法示例
2016/09/18 Python
Python魔术方法专题
2020/06/19 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
您的网上新华书店:文轩网
2016/08/24 全球购物
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
高一政治教学反思
2014/01/28 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
党小组推荐意见
2015/06/02 职场文书
小学大队长竞选稿
2015/11/20 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
python开发人人对战的五子棋小游戏
2022/05/02 Python