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 相关文章推荐
服务器安全设置的几个注册表设置
Jul 28 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
Jul 13 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
May 26 Javascript
JavaScript生成SQL查询表单的方法
Aug 13 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
Apr 23 Javascript
微信小程序 行的删除和增加操作实现详解
Sep 29 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 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的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
PHP中串行化用法示例
2016/11/16 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
AngularJS实现注册表单验证功能
2017/10/16 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python读写Excel文件方法介绍
2014/11/22 Python
Python中的异常处理简明介绍
2015/04/13 Python
Python二分查找详解
2015/09/13 Python
Python数据类型学习笔记
2016/01/13 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python实现redis三种cas事务操作
2017/12/19 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
pytorch 常用线性函数详解
2020/01/15 Python
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
创业计划书中要认真思考的问题
2013/12/28 职场文书
演讲稿开场白
2014/01/13 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
工程安全员岗位职责
2014/03/09 职场文书
文明之星事迹材料
2014/05/09 职场文书
干部作风建设工作总结
2014/10/29 职场文书
PHP RabbitMQ消息列队
2022/05/11 PHP
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis