почему я не могу получить результат pascal три в дом?
Потому что когда numberOfRows
, введенный пользователем, больше, чем 2 i: e 3, 4, 5 et c, else
выполняется часть
else {
for (var i = 2; i < numberOfRows; i++) {
addRow(triangle);
}
}
Возвращаемое значение из функции addRow
не используется. Вместо этого сохраните результат функции в переменной и затем верните его.
Примечание - triangle.push(newRow);
-> pu sh функция возвращает новую длину массива.
function call() {
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('Niveaux').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++) {
result = addRow(triangle);
return result;
}
}
return numberOfRows;
};
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);
triangle.push(newRow);
return triangle;
}
<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>
- Правка -
function call() {
var numberOfRows = document.getElementById('Niveaux').value;;
generate(numberOfRows);
document.getElementById('result1').innerHTML = 'Triangle de pascal a ' + numberOfRows + ' Niveau';
};
var generate = function(numberOfRows) {
numberOfRows = +(document.getElementById('Niveaux').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);
}
}
printRow(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);
triangle.push(newRow);
return triangle;
}
const printRow = function(rows) {
let pascalRow = "";
for (let row of rows) {
pascalRow += `${row.join(' ')} <br>`;
}
document.body.querySelector('#result2').innerHTML = pascalRow;
}
<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>