В настоящее время у меня есть это, итеративно выводит гистограмму на левой стороне.
const arr = [6,10,4,5,1];
let c = 10;
let r;
for (let i = 0; i < 11; i++) {
r = "";
r += "| ";
for (let k = 0; k < arr.length; k++) {
if (arr[k] == c) r += " __";
else if (arr[k] < c) r += " ";
else r += "| ";
}
console.log(r);
c--;
}
Я хотел бы изменить это так, чтобы он также выводил правую руку гистограммы следующим образом:
| __
| | |
| | |
| | |
| __| |
| | | | __
| | | |__| |
| | | | | |
| | | | | |
| | | | | |__
| | | | | | |
Итак, я попытался добавить это в первом операторе if ()
else if (k < arr.length - 1 && arr[k + 1] < c && arr[k] > c) r += "| |";
. Это добавляет право |
в правильных местах, однако оно сдвигает все остальные символы после него.
Следовательно, мой вопрос: как я могу обойти это? Есть ли алгоритм, который нужно соблюдать, чтобы он не сдвигался?