vue.js - 使用Vue.js在for循环中根据条件显示数据对象
问题描述
我有一个对象数组,我想根据某些条件显示数据。如果用户 id 与数据 id 显示名称匹配,则该 id 的年龄。也可以通过循环而不是定义来创建单个 div 并显示多个 div对于 3 个不同的 ID,它 3 次。
<div class="content" v-for="person in persons>
<div v-for="user in users"
:key="user.id">
<div v-if="user.seqId == person.id" >
{{person.name}}
</div>
<div v-if="user.seqId == person.id">
{{person.name}}
</div>
</div>
<div v-if="user.seqId == person.id">
{{person.name}}
</div>
</div>
</div>
const persons= [
{
name: 'Adam',
age:20,
id: 1,
},
{
name: 'Paul',
age:20,
id: 2,
},
{
name: 'James',
age:20,
id: 3,
},
]
data() {
return {
persons,
};
}
解决方案
创建一个计算属性以将匹配项合并到一个数组中。
computed: {
matchingUsers() {
// find persons that exist in users by
// matching p.id == u.seqId
return persons.filter(p=>{
return users.find(u=>u.seqId===p.id)
})
}
}
然后迭代单个数组...
<div class="content" v-for="(person,i) in matchingUsers" :key="i">
{{person.name}} - {{person.age}}
</div>
推荐阅读
- java - 将绘图限制为轮廓
- loops - OPEN ACC - 如何处理 Struct 内部例程的数据管理?
- java - 在java中使用JsonArray Iteration检索基于LastModifiedDate的记录
- javascript - 可以从字节数组中获取文件对象
- javascript - 如何围绕此附加行创建一个 Div?
- r - 通过 R Flexdashboard 中的输入选择过滤传单标记
- edmx - 'Columname' 无法修改,因为它要么是计算列,要么是 UNION 运算符的结果
- python - Flake8 在 circle-ci 上超时
- php - 如何在链式模拟方法上断言输入
- graphql - 我们可以使用 Laravel 事件更改/更改嵌套突变吗?