2016-07-29 39 views
0

在我的Express路由中,我从MySQL数据库中获取了一堆条目。这些条目是单词,并具有关联的行号,因此同一行上的所有单词都需要在换行符之前一起打印。Express/doT.js中的循环和变量,了解如何正确打印MySQL结果

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

使用doT.js作为我的模板引擎,我需要通过MySQL的结果的数组打印出来作为

Lorem ipsum dolor 
sit amet 

我环路和打印出来的字。但我不知道如何比较当前索引的行号和以前索引的行号。我的第一个倾向是为当前行存储一个变量,并将其与前一行进行比较。如果它们不同,那么我可以打印<br>。但我无法弄清楚如何去做。

我将不得不使用助手方法(如果有的话,有人可以链接一个好的教程)吗?还是有更简单的方法来完成这个?

回答

0

Assusming你有这样的数组:

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 " 

您可以进一步根据您的确切需要调整。