Как сделать форму, используя для l oop javascript - PullRequest
1 голос
/ 28 февраля 2020

Я застрял с проблемой, с которой столкнулся.

код, который я пробовал:

function printImage(oddnumbers) {
    for (var i = 0; i < oddnumbers; i++) {
        var tmp = ''
        for (var j = 0; j < oddnumbers; j++) {
            if (i % 2 === 0) {
                tmp += 'x';
            } else {
                tmp += '=';
            }
        }
        console.log(tmp);
    }
}

printImage(5)

это результат

xxxxx
=====
xxxxx
=====
xxxxx

У меня есть такая проблема:

Создайте функцию для печати изображения, как показано ниже, у которой есть параметр в качестве длины или ширины изображения. Параметр должен быть нечетным числом. Примечание. Необходимо использовать циклы, не вводить код жестко / писать напрямую

при запуске printImage(5)

x===x
=x=x=
==x==
=x=x=
x===x

при запуске printImage(7)

x=====x
=x===x=
==x=x==
===x===
==x=x==
=x===x=
x=====x

помогите пожалуйста решить эту проблему

1 Ответ

1 голос
/ 28 февраля 2020

Вам необходимо напечатать x s по диагонали, что можно сделать, проверив при построении строки: если индекс строки (j) совпадает с индексом столбца (i), выведите x (поскольку вы находитесь на диагонали сверху-слева-вниз-справа), а если индекс строки равен length - 1 - i, значит, вы на другой диагонали. В противном случае выведите =:

function printImage(length) {
  for (var i = 0; i < length; i++) {
    // Construct a row
    var tmp = ''
    for (var j = 0; j < length; j++) {
      tmp += (j === i || j === (length - 1 - i))
        ? 'x'
        : '=';
    }
    console.log(tmp);
  }
}

printImage(7)
...