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 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
jQuery+jqmodal弹出窗口实现代码分明
Jun 14 Javascript
js onload处理html页面加载之后的事件
Oct 30 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
js正则表达exec与match的区别说明
Jan 29 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
js实现select选择框效果及美化
Aug 19 Javascript
AngularJS中isolate scope的用法分析
Nov 22 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
Dec 30 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
Sep 28 Javascript
深入解析ES6中的promise
Nov 08 Javascript
vue实现移动端H5数字键盘组件使用详解
Aug 25 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php cout&amp;lt;&amp;lt;的一点看法
2010/01/24 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
用JQuery调用Session的实现代码
2010/10/29 Javascript
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python中的引用知识点总结
2019/05/20 Python
Python 画出来六维图
2019/07/26 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Python数组并集交集补集代码实例
2020/02/18 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
法学毕业生自我鉴定
2013/11/08 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
手机被没收的检讨书
2014/10/04 职场文书
市场部岗位职责范本
2015/04/15 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
初中英语教学反思范文
2016/02/15 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
MySQL查询日期时间
2022/05/15 MySQL