具有特定键值对的过滤器数组

时间:2019-06-18 15:02:20

标签: javascript vue.js computed-properties

在Vue-JS中,我使用的是计算属性,并希望基于键值对过滤数组,这是我的数组,其中包含({{1} }):

data() {}

在此数组中,我具有menu_content: [ { title: "Dashboard", icon: "dashboard", group: false, }, { title: "User", icon: "account_circle", group: true, sub_menu_items: [ { title: "Edit", sub_group: true, sub_group_items: [ { title: "Admin", icon: "verified_user", }, ], }, ] } ] 属性,该属性可以是groupfalse,因此我编写了一些代码以根据此键值< / em>与(在true中)配对:

computed: {}

如果我haveSubGroup() { this.menu_content.forEach(item => { if (item.group) return item.sub_menu_items.filter(sub_item => sub_item.sub_group == true); }); } 上面的console.log()语句,它给我一个可观察的,如果我在return中使用{{ haveSubGroup }},我就不会什么都看不到!

2 个答案:

答案 0 :(得分:0)

尝试一下:

haveSubGroup() {
  this.menu_content.forEach(item => {
    return item.group && item.sub_menu_items.some(sub_item => sub_item.sub_group);
  });
}

答案 1 :(得分:0)

您知道您正在return循环中使用该forEach语句来打破循环,我为您提供了以下解决方案,希望对您有所帮助!

haveSubGroup() {
  let temp = [];
  this.menu_content.forEach(item => {
    if (item.group)
      temp.push(item.sub_menu_items.filter(sub_item => sub_item.sub_group == true));
  });
  return temp[0];
},