2015-07-20 26 views
-2

我有一個小問題。我試圖從mySQL的一些數據與節點,當我要通過我得到的行for循環,我一直都想與1個指數過多或1個索引/行不包括在我的下面的代碼Node.js問題與for(var我= 0

connection.query("SELECT clientid, profileid FROM ts3bot_in", function(err, rows) { 
    if (!err) { 
     console.log("Found " + rows.length); 
     console.log(rows); 

     for (var i = 1; i < (rows.length); i++) { 
      console.log(i); 
     } 
    } 
} 

所以,我的意思是:當我有1列在我的數據庫表中找到,我m如果I = 0,I = 1 2行,即時得到I = 0,I = 1和I = 2。

希望有人能幫助我。

與問候,ndslr 。

+2

你爲什麼要這麼做rows.size?這應該不是rows.length? – Alex

+3

不應該'var i = 0;我 moonwave99

+0

@Alex是的,我剛剛嘗試過.size,並忘記將它再次轉換爲.length。 – ndslr

回答

0

試試這個

connection.query("SELECT clientid, profileid FROM ts3bot_in", function(err, rows) { 
    if (!err) { 
     console.log("Found " + rows.length); 
     console.log(rows); 

     for (var i = 0; i < rows.length; i++) { 
      console.log(i); 
     } 
    } 
} 

記住陣列從零開始的索引 - 的第一個項目將是0。第二,1等等

rows[0]永遠是第一項在數組中。

你在做什麼console.log(i)對於第一項,這將始終爲0。
如果您希望它爲第一個項目顯示1,則需要執行console.log(i+1) - 以取代基於零的索引。

或者,你可以嘗試.forEach

connection.query("SELECT clientid, profileid FROM ts3bot_in", function(err, rows) { 
    if (!err) { 
     console.log("Found " + rows.length); 
     console.log(rows); 

     rows.forEach(function(row, i) { 
      console.log(row); // the actual item 
      console.log(i); // the index - again, zero based 
     }) 
    } 
} 
+1

在for循環解決方案中,行索引應該從0開始。 – bluefog

+0

@bluefog對不起,是...錯別字!或者是複製/粘貼錯誤;-) - 已編輯 – Alex

+0

您的第二個答案正常工作。感謝您的幫助 – ndslr