如何修复我不断从中得到的未定义结果?

How do I fix the undefined result I keep getting from this?

所以我正在进行 HackerRank superDigit 挑战,尽管我对所有非正式测试用例都有正确的值,但输出框显示结果未定义。 我并没有真正理解 undefined 是什么意思,也没有弄清楚一个值为 returns 的变量如何被定义为 undefined.

function superDigit(n, k) {
    // Write your code here

    var nArr = [];
    
    for(let i = 0; i < n.length; i++)
    {
        nArr.push(n[i]);
    }
    
    console.log('nArr: ' + nArr);
    
    var nComb = 0;
    for(let i = 0; i < nArr.length; i++)
    {
        nComb += parseInt(nArr[i]);
    }
    console.log('nComb: ' + nComb);
    
    var nMult = nComb *= k;
    console.log('nMult: ' + nMult);
    console.log('');
    
    if(nMult < 10)
    {
        return nMult;
    }
    else
    {
        superDigit(nMult.toString(),1);
    }
}

您可能还想 return superDigit 结果。所以在递归调用superDigit的时候,加上return语句。我还稍微清理了 console.log 调用,以便它对我来说更具可读性。

function superDigit(n, k) {

    var nArr = [];
    
    for(let i = 0; i < n.length; i++)
    {
        nArr.push(n[i]);
    }
    
    var nComb = 0;
    for(let i = 0; i < nArr.length; i++)
    {
        nComb += parseInt(nArr[i]);
    }
    
    var nMult = nComb *= k;
    console.log('nMult:', nMult, 'nArr:', nArr, 'nComb:', nComb);
    
    if(nMult < 10)
    {
        return nMult;
    }
    else
    {
        return superDigit(nMult.toString(),1);
    }
}

document.getElementById('result').innerText = superDigit("200", 20);
<html>
<body>
<p id="result"></p>
</body>
</html>