我想检查一个对象的特定属性是否与对象数组中的下一个对象的属性相同,通过 v-for 循环。
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>
是否有其他方法来完成此要求?
你的问题是当你到达数组中的最后一个项目时 dayIndex+1 对象不存在。它是 undefined .你需要做的是在你的模板中确定你的对象是否被定义并从那里开始。
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 我的工作榜样