2015-04-12 36 views
1

我有一些JSON傳遞到部分視圖。與Express和EJS循環神祕的奇怪NodeJS

{ 
"0": { 
    "storename": "Park plaza", 
    "prediction": "Retail Sites", 
    "probability": 0.851005 
    }, 
"1": { 
    "storename": "Emory Mills", 
    "prediction": "Retail Sites", 
    "probability": 0.851005744010425 
    }, 
"2": { 
    "storename": "Potamac Heights", 
    "prediction": "Retail Sites", 
    "probability": 0.851005744010425 
    } 
} 

這裏是循環的代碼。

<% for(var i=0; i < tabledata.length; i++) { %> 
<tr> 
    <td><%= tabledata[i].storename %></td> 
    <td><%= tabledata[i].prediction %></td> 
</tr> 
<% } %> 

我很好奇爲什麼這不起作用,但沒有一個循環,它的確如此。

<tr> 
    <td><%- tabledata["0"].storename %></td> 
    <td><%- tabledata["0"].prediction %></td> 
</tr> 
<tr> 
    <td><%- tabledata["1"].storename %></td> 
    <td><%- tabledata["1"].prediction %></td> 
</tr> 
<tr> 
    <td><%- tabledata["2"].storename %></td> 
    <td><%- tabledata["3"].prediction %></td> 
</tr> 

我意識到即使沒有循環,我也需要數字作爲字符串。但是,即使我在循環中放入i.toString(),它也會說有一個typeerror。我也嘗試過加引號「」,以及單引號「',但那也行不通。

此外,我看到的錯誤是語法錯誤,在我的部分視圖中的意外標記ILLEGAL。

有什麼想法?

+0

你有沒有檢查JS開發者控制檯,任何的錯誤? – NarendraSoni

+0

當我把我變成一個字符串時,我確實得到了一個typeerror。 –

+0

'tabledata'是一個對象,而不是一個數組。 – robertklep

回答

0

在你的循環中i是一個整數,在另一個它是一個字符串。

修改循環,使這是一個強大的,它會工作(在單引號把它包)

+0

對......但這是讓我困惑的部分。我試過單引號,它也不起作用。當我把我轉換成一個字符串時,它說有一個typeerror –

+0

查找JS連接字符串,就像那樣創建它。還console.log數組來檢查你是如何訪問它是正確的,變量我是你所期望的 –

+0

Console.log()是你的朋友 –