(Javascript)LEETCODE题目,执行结果 & 本地环境可通过,提交代码时运行时错误,如何解决?
具体问题,LEETCODE第17题(简单难度)
https://leetcode-cn.com/probl...
我的代码:
/**
* @param {string} digits
* @return {string[]}
*/
var letterCombinations = function(digits) {
//1. 建立数字和字母的映射 2~9
let map=['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']
//2. 字符串转数组,使其可遍历 23=>[2,3]
let nums = digits.split('')
//3. 保存数字映射后的内容 [2,3]=>['abc','def']
let code = []
nums.forEach(item=>{
if(map[item]){
code.push(map[item])
}
})
let comb = (arr)=>{
let tmp=[]
for(let i=0;i<arr[0].length;i++){
for(let j=0;j<arr[1].length;j++){
tmp.push(`${arr[0][i]}${arr[1][j]}`)
}
}
arr.splice(0,2,tmp)
if(arr.length>1){
comb(arr)
}
else{
return arr[0]
}
return arr[0]
}
return comb(code)
};
报错如下
执行出错信息:
Line 19: TypeError: Cannot read property 'length' of undefined
执行结果 & 本地环境可通过,提交代码时运行时错误,如何解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你在本地试一下 letterCombinations('2')
本地运行通过,线上不通过,一般是本地运行的时候,你传入的参数类型比较单一。
而线上的,它会传各种可能的参数。
这里:
// for(let j=0;j<arr[1].length;j++)
当传入的参数只有一位数字的时候,arr[1]不存在