我目前有这个,它在左侧迭代输出条形图。
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((语句下添加这个CCD_ 1。这将在正确的位置添加正确的|
,但它会移动后面的所有其他字符。
因此,我的问题是如何解决这一问题?有没有一种算法可以确保它不会改变?
const arr = [6,10,4,5,1, -1];
let c = 10;
let r;
for (let i = 0; i < 11; i++) {
r = "";
r += "| ";
for (let k = 0; k < arr.length; k++) {
if(k > 0 && arr[k-1] > arr[k] && arr[k] == c) r += "|__";
else if (arr[k] == c) r += " __";
else if(k > 0 && arr[k-1] > arr[k] && arr[k-1] > c) r += "| ";
else if (arr[k] < c) r += " ";
else r += "| ";
}
console.log(r);
c--;
}
这个怎么样?它只是硬编码的条件。