Express / doT.js中的循环和变量,弄清楚如何正确打印MySQL结果

时间:2016-07-29 13:19:10

标签: javascript express dot.js

在我的Express路线中,我从MySQL数据库中获取了一堆条目。这些条目是单词,并且具有关联的行号,因此同一行上的所有单词都需要在换行符之前打印在一起。

word  |  section
----------------
Lorem |     1    
ipsum |     1
dolor |     1
sit   |     2
amet  |     2

使用doT.js作为我的模板引擎,我需要将其打印为

Lorem ipsum dolor
sit amet

我遍历MySQL结果数组并打印出单词。但我无法想象如何比较当前索引的行号与上一个索引的行号。我的第一个倾向是存储当前行的变量,并将其与前一行进行比较。如果它们不同,那么我可以打印<br>。但我无法弄清楚如何去做。

我是否必须使用辅助方法(如果是这样,有人可以链接一个好的教程)吗?或者有更简单的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

假设你有这个阵列:

var arr = [ { "word":"lorem", "section": "1"}, { "word":"ipsum", "section": "1"}, { "word":"dolor", "section": "1"}, { "word":"sit", "section": "2"}, { "word":"amet", "section": "2"} ]

您可以在此功能中尝试:

function printWordsOnLines(arr) {
    var currentLine = 1;
    var output = "";
    arr.forEach(function(line) {
        if(currentLine<line.section) {
            currentLine=parseInt(line.section);
            output+="<br>";
        }
    output+=line.word + " ";
    })
    return output;
}

将有这个输出:

"lorem ipsum dolor <br>sit amet "

您可以根据具体需要进一步调整。