Доступ к следующему значению объекта индекса в цикле - Vue JS - PullRequest
0 голосов
/ 02 июля 2018

Я хотел проверить условие, если конкретное свойство объекта совпадает со свойством самого следующего объекта в массиве объектов, повторяемое в цикле v-for.

Пример объекта JSON:

[
  { Date: '21-July-2017', ...},
  { Date: '21-July-2017', ...},
  { Date: '25-July-2017', ...},
  ...
]

Требуется проверить, совпадает ли каждое последующее значение Date, чтобы мы скрывали заголовок Date в пользовательском интерфейсе.

<div v-for="(everyDay, dayIndex) in eachPost.values" v-bind:key="dayIndex">
  <div v-if="everyDay['Date'] !== eachPost.values[dayIndex+1].Date">
     THIS DOESN'T WORK
  </div>
</div>

Есть ли альтернатива для выполнения этого требования?

1 Ответ

0 голосов
/ 03 июля 2018

Ваша проблема в том, что когда вы добираетесь до своего последнего элемента в массиве, ваш dayIndex+1 объект не существует. Это undefined. Что вам нужно сделать, так это определить в вашем шаблоне, определен ли ваш объект, и перейти оттуда.

  <div v-for="(everyDay, dayIndex) in eachPost.values" v-bind:key="dayIndex">
   <template v-if="eachPost.values[dayIndex+1]">
      <div v-if="everyDay['Date'] !== eachPost.values[dayIndex+1].Date">
         THIS WORKS
      </div>
  </template>

 </div>

Вот jsFiddle моего рабочего примера

...