【发布时间】:2020-04-29 11:24:55
【问题描述】:
我试图通过 onclick 事件进行三帕斯卡练习,但结果仍未定义 好像我不知道如何调用函数。
var call = function() {
var numberOfRows = document.getElementById('Niveaux').value;;
document.getElementById('result2').innerHTML = generate(numberOfRows);
document.getElementById('result1').innerHTML = 'Triangle de pascal a '+numberOfRows+' Niveau';
};
var generate = function (numberOfRows) {
//numberOfRows = document.getElementById('Niveau').value
let triangle = [[1], [1,1]]
if (numberOfRows === 0){
return []
}else if(numberOfRows == 1){
return [[1]]
}else if (numberOfRows == 2){
return [[1], [1,1]]
}else {
for (var i = 2; i < numberOfRows; i++) {
addRow(triangle)
}
}
};
var addRow = function (triangle) {
let previous = triangle[triangle.length - 1]
let newRow = [1]
for (var i = 0; i < previous.length - 1; i++) {
let current = previous[i]
let next = previous[i+1]
newRow.push(current + next)
}
newRow.push(1)
return triangle.push(newRow)
}
<p>Niveau tri de pascal : <input type="text" id="Niveaux" value="10"></p>
<button onclick="call()">Calcules</button><hr>
<h3 id="result1"></h3>
<p id="result2"></p>
【问题讨论】:
-
对不起,我对未定义中的问题感到愤怒,我不明白问题出在哪里,我试图根据输入中的数字显示帕斯卡三角形,似乎我无法调用该函数生成并内化结果
-
取消注释
generate中的第一行,并将值解析为数字。您从 HTML 中得到的只是字符串,当您将字符串与数字进行比较时,严格的比较不会通过。
标签: javascript html arrays loops dom