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提供睡眠功能(sleep) 自编译JS引擎
Aug 16 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
jQuery.event兼容各浏览器的event详细解析
Dec 18 Javascript
document.forms用法示例介绍
Jun 26 Javascript
jQuery 限制输入字符串长度
Jun 20 Javascript
Reactjs实现通用分页组件的实例代码
Jan 19 Javascript
AngularJS中$http的交互问题
Mar 29 Javascript
p5.js入门教程之平滑过渡(Easing)
Mar 16 Javascript
mpvue项目中使用第三方UI组件库的方法
Sep 30 Javascript
JS实现简易留言板增删功能
Feb 08 Javascript
Vue3.0的优化总结
Oct 16 Javascript
浅谈JavaScript作用域
Dec 06 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 木马攻击防御技巧
2009/06/13 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
php算法实例分享
2015/07/14 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
Django用户认证系统 User对象解析
2019/08/02 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
大学生创业感言
2014/01/25 职场文书
幼儿园门卫制度
2014/01/29 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
企业承诺书怎么写
2014/05/24 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
Python绘制分类图的方法
2021/04/20 Python