Я работаю над своим первым сайтом, используя шаблоны на стороне клиента, и пока все хорошо. Я просто хочу добиться наилучшей производительности для кода ниже.
Мне дают json в таком формате:
[
{
"slidenumber": "slide0",
"title": "Sample Data 1",
"slideDelay": "2000",
"months": [
{
"Jan": "10.3",
"Dec": "65",
"Nov": "87",
"Oct": "80",
"Sep": "70",
"Aug": "100"
}
]
},
{
"slidenumber": "slide1",
"title": "Sample Data 2",
"slideDelay": "2000",
"months": [
{
"Jul": "10",
"Jun": "20",
"May": "30",
"Apr": "40",
"Mar": "50",
"Feb": "60"
}
]
}
]
и используя шаблон underscore.js ниже:
_.each(slides, function(slide){ %>
<li data-slide-delay="<%= slide.slideDelay %>">
<h1><%= slide.title %></h1>
<table class="table">
<thead>
<tr>
<%
_.each( slide.months, function(month) {
if (_.isObject(month)) {
_.each(month, function(value, key) {%>
<th><%= key %></th>
<%})
}
});%>
</tr>
</thead>
<tbody>
<tr>
<%
_.each( slide.months, function(month) {
if (_.isObject(month)) {
_.each(month, function(value, key) {%>
<td><%= value %></td>
<%})
}
});%>
</tr>
</tbody>
</table>
</li>
По сути, я создаю слайд-шоу, используя приведенные выше данные, поэтому каждый «слайд» имеет определенные поля заголовка, задержки и т. Д., С другой стороны, месяцы содержат данные внутри него. Я строю <li>
для каждого слайда, а внутри него горизонтальный <table>
, в этой таблице я строю <th>
для месяца (т.е. январь, февраль, март и т. д.), а затем я разделяю значение месяца в <td>
Вместо того, чтобы делать два оператора _.(each
с одними и теми же данными (но отображающими разные значения), как я делаю выше, какой лучший способ добиться желаемого результата?