javascript - 迭代填充可视条形图右侧的算法

标签 javascript algorithm graph

我目前有这个,它在左侧迭代地输出一个条形图。

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 += "| |"; .这增加了权利 |在正确的位置,但是它会移动它后面的所有其他字符。

因此,我的问题是我该如何解决这个问题?是否有可遵循的算法来确保它不会转移?

最佳答案

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--;
}

这个呢?它只是在条件中硬编码。

关于javascript - 迭代填充可视条形图右侧的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53253522/

相关文章:

javascript - 纯 JavaScript 从下拉选择中删除项目

javascript - 单击元素后无法显示 Angular 对话框

algorithm - 加入两棵红黑树的最佳方式

algorithm - 动态最短路径

javascript - Visual Web Developer Express 中的静态 Web 元素

javascript - 从 Azure IotHub/EventHub 获取 deviceId

algorithm - 在 O(nlog(range of bounds)) 时间内优化列表中的最大值

Android - 让进度条平稳增加,而不是跳得更大。

python - 从不允许直接访问页面的网站检索 json

node.js - 根据位置和指定半径获取数据