2016-07-29 36 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 " 

您可以進一步根據您的確切需要調整。