vuex函数 - 根据对象值返回true或false

问题描述 投票:1回答:2

我有一个返回子对象的数据,如下所示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函数。

任何帮助表示赞赏。

vue.js vuejs2 vuex
2个回答
1
投票

做就是了

<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>

0
投票

只需将该功能放在模板中即可

<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}}

© www.soinside.com 2019 - 2024. All rights reserved.