2016-08-18 3 views
1
I think that my confusion is also related to my misunderstanding of the tier definition. What purpose does the '' placeholder serve in defining the tier variable as such? 

function printTriangle(length) { 
    for(var i = 1; i <= length; i++) { 

     var tier = ''; 

     for(var j = 0; j < i; j++) { 
      tier += '*'; 
     } 

    console.log(tier); 
    } 
} 
//printTriangle(3); 


* 
** 
*** 

Кроме того, как делает добавление третьего цикла сделать вывод выравнивать пирамиде, как так? Я видел, что это использовалось в качестве подсказки для интервью/интервью, но я бы подумал, что базовое понимание (я просто погружаюсь в это, если вы уже не можете сказать) сделало бы переход от треугольника к пирамиде довольно простым.Необходим второй цикл «для», и если да, то почему?

 * 
     * * 
    * * * 
    * * * * 
    * * * * * 
    * * * * * * 
* * * * * * * 
* * * * * * * * 


function printPyramid(length) { 
    for(var i = 1; i <= length; i++) { 
     var tier = ''; 

     for(var j = length - i; j > 0; j--) { 
      tier += ' '; 
     } 
     for(var k = 0; k < i; k++) { 
      tier += '* '; 
     } 
    console.log(tier); 
    } 
} 
//printPyramid(10); 

Спасибо заранее!

ответ

0

Заполнитель-заполнитель используется только для инициализации переменной tier как строки. Его значение никогда не используется до тех пор, пока не будет введен цикл и не будут добавлены действительные символы.

Да. Первый цикл заботится о строках. Второй цикл рисует каждый уровень. Обратите внимание, что в цикле j в качестве входного параметра используется i. В этом случае уровень пирамиды (начиная с вершины) равен ширине пирамиды в этой точке.

Добавление третьего цикла не является излишним. То, что он делает, это добавить символы пространства, чтобы пирамида выглядела как центрированная вершина, а не верхняя часть, которая находится на одном уровне с левой стороной экрана.

+0

Благодарим вас за четкий ответ! – AndrewC

+0

Добро пожаловать! Рад, что мы могли бы помочь. –

Смежные вопросы