2015-01-26 3 views
0

Я вынимаю данные из своей базы данных и отправляю свои просмотры через свои контроллеры. Дата подходит, и я передаю эти данные в HTML с циклом.Как остановить цикл в цикле со строкой

Проблема в том, что я хочу показать только 4 элемента, не все. Как я могу это решить?

Например:

<% for(var i = 0; i < data.length; i++ { %> 
<p> <%= data[i].name %> 
<p> <%= data[i].age %> 
<% } %> 

Я только хочу вынести 4 раза. Как добиться этого?

Спасибо!

ответ

0

Я хотел бы сделать что-то вроде:

<% for(var i = 0,max = (data.length > 4 ? 4 : data.length); i < max; i++ { %> 
<p> <%= data[i].name %> 
<p> <%= data[i].age %> 
<% } %> 

Что это делает итерации цикла либо в 4 раза или длина данных (в зависимости от того короче). Если у вас нет этого условного, вы можете попасть в индекс за пределами (если, например, data.length равно 2).

Кодовое примечание: его хорошая практика объявить max в начале цикла for. Его более читаемый и, для производительности, поиск атрибута длины данных происходит только один раз (вместо каждой итерации).


Обновление на основе комментариев

Для добавления других условными (например, если = Pagename 'дома')

<% for(var i = 0,max = ((data.length > 4 && pageName === 'home') ? 4 : data.length); i < max; i++ { %> 
<p> <%= data[i].name %> 
<p> <%= data[i].age %> 
<% } %> 
+0

вопрос: могу ли я применить этот максимум, только если мой URL-адрес совпадает с http://something.com/ ?? Я использую тот же код в двух местах, индексе и конкретной странице ремаркетинга Google, индекс должен показывать только 4 раза, а// должен показывать все. Это возможно?? –

+0

Я не уверен на 100% вашего вопроса, но ... если попытаться повторно использовать max, который я включил, он вернет 4 или максимум массива данных (в зависимости от того, что закорочено), независимо от страницы. – TheIronDeveloper

+0

Я знаю это ... но, как я уже сказал, я хотел бы применить max на одной странице, дома, но код служит для двух страниц - дома и событий. Есть ли способ идентифицировать страницу с помощью EJS и применять max только в том случае, если страница = домашняя? –

1

Как это:

<% for(var i = 0; i < data.length && i<4; i++ { %> 
<p> <%= data[i].name %> 
<p> <%= data[i].age %> 
<% } %> 
+0

вопрос: могу ли я применить это только, если мой URL-адрес спичек с http://something.com/ ?? Я использую тот же код в двух местах, индексе и конкретной странице ремаркетинга Google, индекс должен показывать только 4 раза, а// должен показывать все. Это возможно?? –

Смежные вопросы