Javascript返回未定义的html标记,但在开发人员控制台中显示结果

Javascript返回未定义的html标记,但在开发人员控制台中显示结果,javascript,html,matrix,console,spiral,Javascript,Html,Matrix,Console,Spiral,我在html页面的textarea上呈现此代码的输出时遇到问题,但它在控制台上运行并显示正确的输出。下面是html和javascript代码。。谢谢 <body> <div class="input"> <div class="numb"> <form class="form-group" name="number" id="number"> <input id="textbox" type="

我在html页面的textarea上呈现此代码的输出时遇到问题,但它在控制台上运行并显示正确的输出。下面是html和javascript代码。。谢谢

<body>
<div class="input">
    <div class="numb">
        <form class="form-group" name="number" id="number">
            <input id="textbox" type="text" name="textbox" placeholder="Enter N">
            <button type="button" name="submit" id="button" onclick="final()">Get Matrix</button>
        </form>

    </div>
    <div class="result">
        <textarea id="spiral" name="spiral" placeholder="matrix"></textarea>
    </div>
</div>

因此,如果我从页面中输入n,我会得到开发人员控制台中显示的n矩阵,但不会在html页面节点中显示,您的
print
函数不会返回值,因此
text
未定义的
。添加类似于
returnline.toString()的内容
在您的
打印
功能结束时。

您没有从打印功能返回任何内容;这里更新了fiddle以连接文本并返回矩阵中的文本

在打印功能中的控制台后添加:

text = text+line.toString()+'\n'

最后执行一个
返回文本

您的
打印
函数不返回任何内容,并且
让text=print(螺旋(输入),“”)
因此不会将输出放入
文本中
function print(input, paddingChar) {
const longest = (input.length * input.length).toString().length;
const padding = paddingChar.repeat(longest);
for (let y = 0; y < input.length; y++) {
    let line = "";
    for (let x = 0; x < input.length; x++) {
        line += (padding + input[x][y]).slice(-longest) + " ";
    }
    console.log(line.toString());
}}
function final() {
input = document.getElementById("textbox").value;
let text = print(spiral(input), " ");
document.getElementById("spiral").innerHTML = text}
`let text = ''
text = text+line.toString()+'\n'