Странный NodeJS с загадкой Express и EJS

У меня есть немного JSON, я перехожу к частичному представлению.

{
"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() в цикл, он говорит, что есть ошибка типа. Я также пытался вставить в кавычки "", а также одиночные кавычки ", но это также не сработало.

Кроме того, я вижу ошибки синтаксиса, неожиданный токен ILLEGAL в моем частичном представлении.

Какие-нибудь мысли?

1 ответ

В вашем цикле i это целое число, в другом это строка.

Изменить цикл так, чтобы он был сильным, и он работал (оберните его в одинарные кавычки)

Другие вопросы по тегам