поэтому я работал над функциями, создающими звездные шаблоны, и как-то я продолжаю получать "undefined", когда я'innerHTML 'это. Может ли кто-нибудь помочь мне увидеть, что я делаю неправильно здесь?
pOutput.innerHTML = square(3);
poutput.innerHTML = rectangle(2,3);
function square(x) {
var z;
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=x; j++) {
z += "*";
}
z += "<br>";
}
return z
}
function rectangle(x, y) {
var z;
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=y; j++) {
z += "*";
}
z += "<br>";
}
return z
}
Вы должны сделать var z = ""
иначе значение не определено, см. Это:
var z;
console.log(z)
Полный пример:
console.log(square(3));
console.log(rectangle(2,3));
function square(x) {
var z = "";
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=x; j++) {
z += "*";
}
z += "<br>";
}
return z
}
function rectangle(x, y) {
var z = "";
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=y; j++) {
z += "*";
}
z += "<br>";
}
return z
}
Инициализировать z
с "" значением по умолчанию z
не undefined
в var z;
var pOutput = document.getElementById('pOutput')
var poutput = document.getElementById('poutput')
pOutput.innerHTML = square(3);
poutput.innerHTML = rectangle(2,3);
function square(x) {
var z = "";
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=x; j++) {
z += "*";
}
z += "<br>";
}
return z
}
function rectangle(x, y) {
var z = "";
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=y; j++) {
z += "*";
}
z += "<br>";
}
return z
}
Посмотрите на следующий фрагмент, где я исправил ваш код. Вам нужно инициализировать z пустой строкой.
var z = "";
Если это не определено, то следующее пошло не так
z += "*" -> z is undefined so z = "undefined" + "*"
document.getElementById("square").innerHTML = square(3);
document.getElementById("rectangle").innerHTML = rectangle(2, 3);
function square(x) {
var z = "";
for (var i = 1; i <= x; i++) {
for (var j = 1; j <= x; j++) {
z += "*";
}
z += "<br/>";
}
return z
}
function rectangle(x, y) {
var z = "";
for (var i = 1; i <= x; i++) {
for (var j = 1; j <= y; j++) {
z += "*";
}
z += "<br/>";
}
return z
}
Square
<div id="square"></div>
<br/><br/> Rectangle
<div id="rectangle"></div>
var z;
<--- не определено ....;
к вашему возвращению. Также не называйте переменные, которые отличаются только регистром (poutput против pOutput). В любом случае poutput не очень описательное имя. Ваша первая функция также может быть сокращена до 1 строки:return rectangle(x, x);
:-)