如何用JavaScript编写电话号码字母组合算法示例代码?

更新于
2026-10-01 13:24:40
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计623个文字,预计阅读时间需要3分钟。

如何用JavaScript编写电话号码字母组合算法示例代码?

本例展示了如何使用JavaScript实现电话号码的字母组合算法。以下是一个简单的方法,用于将包含数字2-9的字符串转换为所有可能的字母组合:

javascriptfunction phoneDigitsToLetters(digits) { const digitToLetters={ '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'] };

const result=[];

function backtrack(current, remaining) { if (remaining.length===0) { result.push(current); return; }

const nextDigit=remaining[0]; const letters=digitToLetters[nextDigit];

for (const letter of letters) { backtrack(current + letter, remaining.slice(1)); } }

backtrack('', digits);

return result;}

// 示例const digits='23';console.log(phoneDigitsToLetters(digits));

如何用JavaScript编写电话号码字母组合算法示例代码?

这段代码定义了一个函数`phoneDigitsToLetters`,它接收一个包含数字2-9的字符串,并返回所有可能的字母组合。使用回溯算法生成所有组合,并在控制台输出示例结果。

本文实例讲述了JS实现电话号码的字母组合算法。分享给大家供大家参考,具体如下:

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例:

输入:"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代码运行工具:tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

本文共计623个文字,预计阅读时间需要3分钟。

如何用JavaScript编写电话号码字母组合算法示例代码?

本例展示了如何使用JavaScript实现电话号码的字母组合算法。以下是一个简单的方法,用于将包含数字2-9的字符串转换为所有可能的字母组合:

javascriptfunction phoneDigitsToLetters(digits) { const digitToLetters={ '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'] };

const result=[];

function backtrack(current, remaining) { if (remaining.length===0) { result.push(current); return; }

const nextDigit=remaining[0]; const letters=digitToLetters[nextDigit];

for (const letter of letters) { backtrack(current + letter, remaining.slice(1)); } }

backtrack('', digits);

return result;}

// 示例const digits='23';console.log(phoneDigitsToLetters(digits));

如何用JavaScript编写电话号码字母组合算法示例代码?

这段代码定义了一个函数`phoneDigitsToLetters`,它接收一个包含数字2-9的字符串,并返回所有可能的字母组合。使用回溯算法生成所有组合,并在控制台输出示例结果。

本文实例讲述了JS实现电话号码的字母组合算法。分享给大家供大家参考,具体如下:

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例:

输入:"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代码运行工具:tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。