// function definition
function pattern(n){
// declare a variable to collect the lines
var output="";
// there are n lines
for(i=1;i<n+1;i++){
// each line starts with the linenumber and ends with n
// so take a loop from i to n
for(j=i;j<n+1;j++){
// collect the numbers of each line as a string in the declared variable
output += j;
}
// if i!=n means: not the last line
if(i!=n) output +="\n";
}
// return the result of this function
return output;
}
UPDATE
Но, пожалуйста, позвольте мне отметить, что данная решение не очень умное. Взгляните на следующий код:
Array.range = function(start, end) {
return Array.apply(null, Array(end+1)).map(function (_, i) {return i;}).slice(start);
}
function pattern(n){
var startValues = Array.range(1,n);
return startValues.map(function(i) { return Array.range(i,n); }).join('\n');
}
http://jsfiddle.net/afmchdwp/
Сначала определим статический метод Array.range, который помогает нам определить количество диапазонов в JavaScript.
Функция шаблона теперь может использовать эти диапазоны для создания нужных вам чисел. Первая строка функции создает диапазон от 1..n (начальные числа строк).
Вторая строка проходит через этот массив и преобразует каждое значение 1..n в диапазон от linenumber до n. С .join() вы можете комбинировать символы каждой строки и комбинировать сами строки.
ОБНОВЛЕНИЕ 2
Здесь обновляется скрипку без разделенных запятой числа (с использованием присоединиться внутри затвора): http://jsfiddle.net/afmchdwp/1/
J управляет контуром, где, чтобы начать текущие номера строк. Цикл i управляет количеством строк. Конечная инструкция if не добавляет новую строку в итоговую строку. –