在我的Express路线中,我从MySQL数据库中获取了一堆条目。这些条目是单词,并且具有关联的行号,因此同一行上的所有单词都需要在换行符之前打印在一起。
word | section
----------------
Lorem | 1
ipsum | 1
dolor | 1
sit | 2
amet | 2
使用doT.js作为我的模板引擎,我需要将其打印为
Lorem ipsum dolor
sit amet
我遍历MySQL结果数组并打印出单词。但我无法想象如何比较当前索引的行号与上一个索引的行号。我的第一个倾向是存储当前行的变量,并将其与前一行进行比较。如果它们不同,那么我可以打印<br>
。但我无法弄清楚如何去做。
我是否必须使用辅助方法(如果是这样,有人可以链接一个好的教程)吗?或者有更简单的方法来实现这一目标吗?
答案 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 "
您可以根据具体需要进一步调整。