Vue.js 访问下一个索引对象';循环中的s值-Vue JS

Vue.js 访问下一个索引对象';循环中的s值-Vue JS,vue.js,vuejs2,v-for,Vue.js,Vuejs2,V For,我想检查一个条件,如果一个对象的特定属性与对象数组中的下一个对象的属性相同,则通过v-for循环进行迭代 示例JSON对象: [ { Date: '21-July-2017', ...}, { Date: '21-July-2017', ...}, { Date: '25-July-2017', ...}, ... ] 要求是检查每个连续的Date值是否相同,以便在UI中隐藏Date标题 <div v-for="(everyDay, dayIndex) in eachPo

我想检查一个条件,如果一个对象的特定属性与对象数组中的下一个对象的属性相同,则通过
v-for
循环进行迭代

示例JSON对象:

[
  { Date: '21-July-2017', ...},
  { Date: '21-July-2017', ...},
  { Date: '25-July-2017', ...},
  ...
]
要求是检查每个连续的
Date
值是否相同,以便在UI中隐藏
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>

这不管用

是否有其他方法来完成此请求?

您的问题是,当您到达数组中的最后一项时,
dayIndex+1
对象不存在。它是
未定义的
。您需要做的是在模板中确定对象是否已定义并从中开始

  <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>

这很有效

下面是我的一个工作示例

您的问题是当您到达数组中的最后一项时,
dayIndex+1
对象不存在。它是
未定义的
。您需要做的是在模板中确定对象是否已定义并从中开始

  <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>

这很有效

下面是我的一个工作示例

更好的方法是使用计算属性并将其筛选为唯一的,这样可以保持视图更干净。更好的方法是使用计算属性并将其筛选为唯一的,这样可以保持视图更干净。