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实现图片滚动效果的简单实例
Nov 23 Javascript
JavaScript定义变量和变量优先级问题探讨
Oct 11 Javascript
JavaScript跨域方法汇总
Oct 16 Javascript
javascript文本框内输入文字倒计数的方法
Feb 24 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
Mar 02 Javascript
jquery自定义表格样式
Nov 23 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
Nov 26 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
jQuery EasyUI开发技巧总结
Sep 26 jQuery
Layui tree 下拉菜单树的实例代码
Sep 21 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
Mar 26 Javascript
vue循环中点击选中再点击取消(单选)的实现
Sep 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
python代码实现ID3决策树算法
2017/12/20 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python装饰器的特性原理详解
2019/12/25 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
django rest framework 过滤时间操作
2020/07/12 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
C语言编程练习
2012/04/02 面试题
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
汽车维修工岗位职责
2014/02/12 职场文书
Python 阶乘详解
2021/10/05 Python
Python经常使用的一些内置函数
2022/04/11 Python
Python 绘制多因子柱状图
2022/05/11 Python