(Js语言)LEETCODE题目,执行结果可通过,提交代码时运行时错误,如何解决?

656 阅读1分钟

(Js语言)LEETCODE题目,执行结果可通过,提交代码时运行时错误,如何解决?

具体问题,LEETCODE第17题(简单难度) leetcode-cn.com/problems/le…

我的代码:

/**
 * @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

执行结果 & 本地环境可通过,提交代码时运行时错误,如何解决?