【发布时间】:2026-01-23 22:20:02
【问题描述】:
我有一个对象数组
var array = [
{id: true, category: "cat1", name: "test1"},
{id: true, category: "cat2", name: "test2"},
{id: true, category: "cat3", name: "test3"},
{id: true, category: "cat4", name: "test4"},
{id: true, category: "cat5", name: "test5"}
]
如果有匹配的数组值如何过滤?
这是我的脚本:
let filtered = this.array.filter((array) => {
return array.name.toLowerCase().includes(this.keyword.toLowerCase());
});
var category = [];
if(category.includes("All")) {
return filtered;
} else {
return filtered.filter((array) => {
var keys = Object.keys(array);
var matchFilter = false;
category.forEach((key) => {
if(array[key] === true) {
matchFilter = true;
}
});
return matchFilter;
});
}
然后我在前端有一个复选框来存储变量 category 的值
<input type="checkbox" v-model="selectedCategory" value="All">
<input type="checkbox" v-model="selectedCategory" value="1">
<input type="checkbox" v-model="selectedCategory" value="2">
<input type="checkbox" v-model="selectedCategory" value="3">
<input type="checkbox" v-model="selectedCategory" value="4">
<input type="checkbox" v-model="selectedCategory" value="5">
现在,如果检查的值与我的对象数组的 ID 匹配,它只会返回我。我的预期输出是也按类别或名称的值对其进行过滤。
【问题讨论】:
-
什么包含
filtered? -
是搜索的过滤功能。
-
添加更多信息时请edit your question
-
刚刚编辑了问题
-
这里没有足够的信息。
category如何/何时获得任何值?product是什么?目前尚不清楚选择任何复选框的结果应该是什么
标签: javascript vue.js