Как нарисовать ромб на JavaScript?

164
09 сентября 2021, 16:50

у меня не получается

var space = 18;
var star = 1;
var line = 20;
for (var i = 0; i <= line; i++) {
  for (var j = 0; j <= space; j++) {
    document.write("&nbsp")
  }
  for (var k = 0; k < star; k++) {
    document.write("*")
  }
  space--;
  star++;
  if (i === line / 2 && i <= line) {
    for (var rev = line; rev >= line / 2; i++) {
      space++;
      star--;
    }
  }
  document.write("<br>");
}
Answer 1

Два вложенных цикла от -h до h. Нулевая точка расположена в центре фигуры.

Форма ромба получается, когда:

Math.abs(i) + Math.abs(j) == h

JavaScript:

// размер ромба
let h = 5;
// вертикальная ось
for (let i = -h; i <= h; i++) {
  // строка символов
  let line = '';
  // горизонтальная ось
  for (let j = -h; j <= h; j++) {
    // когда точка принадлежит ромбу
    if (Math.abs(i) + Math.abs(j) == h) {
      line += 'Ж';
    } else {
      line += '*';
    }
  }
  // выводим строку
  console.log(line);
}

Вывод:


*****Ж*****
****Ж*Ж****
***Ж***Ж***
**Ж*****Ж**
*Ж*******Ж*
Ж*********Ж
*Ж*******Ж*
**Ж*****Ж**
***Ж***Ж***
****Ж*Ж****
*****Ж*****

См. Нарисовать пустой двойной ромб

Answer 2

var space = 18; 
var star = 1; 
var line = 20; 
for (var i = 0; i <= line; i++){ 
    for (var j = 0; j <= space; j++){ 
        document.write("&nbsp") 
    } 
    for (var k = 0; k < star; k++){ 
        document.write("*") 
    } 
    space--; 
    star++; 
    if (i >= line / 2 && i <= line){ 
        star = star - 2; 
        space = space + 2; 
    } 
    document.write("<br>"); 
}

Answer 3

Этот цикл никогда не завершится, и программа ничего не нарисует.

for (var rev = line; rev >= line / 2; i++) {
  space++;
  star--;
}
Answer 4

n = 11
document.body.textContent = 
  Array(n).fill().map((x, i) => "*".repeat(2*Math.min(i,n-1-i)+1)).join("\n")
body { font-family: monospace; white-space: pre; text-align: center; }

READ ALSO
Вычисление чётного факториала

Вычисление чётного факториала

Не понимаю, почему выскакивает ошибка и как с ней справитьсяПример вычисления факториала 6!! = 6*4*2*1 = 48

117
Подсчёт нулей в конце строки

Подсчёт нулей в конце строки

Не знаю, как сделать так, чтобы функция считала только нули в конце, а нули между обычными числами с двух сторон игнорировалаТо есть результат...

183
Как переключаться между вкладками в браузере с помощью скрипта?

Как переключаться между вкладками в браузере с помощью скрипта?

Работаю с расширением (плагином) для браузера, и нужно сделать скрипт, который будет переключать на любую, нужную мне вкладку в браузере, например...

178