过滤数组,如果它有一个特定的键值对
Filter array if it has a specific key value pair
在 Vue-JS 中,我正在使用 computed 属性 并希望根据键值对过滤数组,这是我的数组包含对象(在 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",
},
],
},
]
}
]
在这个数组中我有 group
属性 可以是 false
或 true
, 所以我写了一些代码来根据这个 [= =27=]key-value 对(在 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
语句,它会给我一个 observable,如果我在 [=] 中使用 {{ haveSubGroup }}
20=] 我什么都没看到!
试试这个:
haveSubGroup() {
this.menu_content.forEach(item => {
return item.group && item.sub_menu_items.some(sub_item => sub_item.sub_group);
});
}
您知道在 forEach
循环中使用 return
语句会打破循环,我为您提供了以下解决方案,希望对您有所帮助!
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];
},
在 Vue-JS 中,我正在使用 computed 属性 并希望根据键值对过滤数组,这是我的数组包含对象(在 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",
},
],
},
]
}
]
在这个数组中我有 group
属性 可以是 false
或 true
, 所以我写了一些代码来根据这个 [= =27=]key-value 对(在 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
语句,它会给我一个 observable,如果我在 [=] 中使用 {{ haveSubGroup }}
20=] 我什么都没看到!
试试这个:
haveSubGroup() {
this.menu_content.forEach(item => {
return item.group && item.sub_menu_items.some(sub_item => sub_item.sub_group);
});
}
您知道在 forEach
循环中使用 return
语句会打破循环,我为您提供了以下解决方案,希望对您有所帮助!
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];
},