代码之家  ›  专栏  ›  技术社区  ›  Prakash M.

在循环中访问下一个索引对象的值-vue js

  •  0
  • Prakash M.  · 技术社区  · 6 年前

    我想检查一个对象的特定属性是否与对象数组中的下一个对象的属性相同,通过 v-for 循环。

    示例JSON对象:

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

    要求是检查每个连续的 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 回复  |  直到 6 年前
        1
  •  2
  •   Trevor V    6 年前

    你的问题是当你到达数组中的最后一个项目时 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 我的工作榜样

    推荐文章