Он должен выглядеть так:
0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0
Я использую for loop
с другим вложенным циклом, но без успеха. Вот мои хромые попытки понять это.
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
document.write(j);
}
document.write("<br>" + (i + 1));
}
Поскольку каждое значение матрицы является абсолютным значением разности между i
и j
вы можете использовать Math.abs():
function paintMatrix(n) {
var result = "";
for (var i = 0; i < n; i++) {
for (var j = 0; j < n; j++) {
result += " " + Math.abs(i - j);
}
result += "\n"
}
console.log(result);
}
paintMatrix(5);
Попробуйте этот алгоритм
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
document.write(Math.abs(j-i));
}
document.write('<br>')
}
str += Math.abs(ji)
т. Д. - и только один раз (после всех циклов) использовать document.someElement innerHTML
или insertAdjacentHTML
или какую-либо другую форму включения строк
document.write
следует оставить в пользу других методов записи. Также убедитесь, что вы не перезаписываете содержимое элемента пустыми состояниями. Вместо этого объедините строку. Только после того, как строка построена - поместите ее в нужный целевой элемент - один раз.