我有一个返回子对象的数据,如下所示this.children将返回如下:
{
"1": {
"firstName": "JJJ",
"lastName": "B",
"day": "1",
"month": "1",
"year": 2012,
"name": "JJJ B",
"dateOfBirth": "2012-01-01",
"age": 6,
"id": "1"
},
"2": {
"firstName": "KKK",
"lastName": "B",
"day": "2",
"month": "2",
"year": 2004,
"name": "KKK B",
"dateOfBirth": "2004-02-02",
"age": 14,
"id": "2"
},
"3": {
"firstName": "LLL",
"lastName": "B",
"day": "3",
"month": "3",
"year": 2017,
"name": "LLL B",
"dateOfBirth": "2017-03-03",
"age": 1,
"id": "3"
}
}
如果该列表中的孩子的年龄低于3,我想创建一个返回true或false的函数。我对vue很新。我理解当我使用v-for时如何检索年龄但不确定如何在涉及检查对象值时继续使用vue函数。
任何帮助表示赞赏。
做就是了
<ul v-for="child in getChildrenUnder3 "><li>{{child.age<3}}</li></ul>
或者您可以使用计算属性:
computed:{
getChildrenUnder3(){
let children3=[];
for(let i=0;i<Object.keys(this.childList).length;i++){
if(Object.values(this.childList)[i].age<3){
children3.push(Object.values(this.childList)[i])
}
}
return children3;
}
}
并像那样呈现:
<ul v-for="child in getChildrenUnder3 "><li>{{child.age}}</li></ul>
只需将该功能放在模板中即可
<template>
<div v-for="child in children" :key="child.id">
{{child.firstName}} is less than three: {{child.age < 3 ? 'TRUE' : 'FALSE'}}
</div>
</template>
但是,如果您正在尝试查明每个子项是否小于3,则可以使用计算值来检索此数据
minAge
应该返回发现的最低年龄
computed: {
minAge() {
return Math.min(Object.keys(this.children).map(k => {
this.children[k].age;
}))
}
}
然后你可以使用它在你的模板中生成布尔值,就像这个{{minAge<3}}