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 相关文章推荐
javascript学习笔记(三)显示当时时间的代码
Apr 08 Javascript
基于JavaScript 下namespace 功能的简单分析
Jul 05 Javascript
javascript ready和load事件的区别示例介绍
Aug 30 Javascript
JavaScript实现的浮动层框架用法实例分析
Oct 10 Javascript
jquery中用函数来设置css样式
Dec 22 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
JavaScript实现构造json数组的方法分析
Aug 17 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
原生JS封装vue Tab切换效果
Apr 28 Vue.js
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报表之jpgraph柱状图实例代码
2011/08/22 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
javascript数组的使用
2013/03/28 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
python远程登录代码
2008/04/29 Python
Python中文编码那些事
2014/06/25 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
python实现字符串加密成纯数字
2019/03/19 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
社区消防工作实施方案
2014/03/21 职场文书
进口业务员岗位职责
2014/04/06 职场文书
厂区绿化方案
2014/05/08 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
投标售后服务承诺书
2015/04/29 职场文书
《窃读记》教学反思
2016/02/18 职场文书
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang