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>
这很有效
下面是我的一个工作示例更好的方法是使用计算属性并将其筛选为唯一的,这样可以保持视图更干净。更好的方法是使用计算属性并将其筛选为唯一的,这样可以保持视图更干净。