我有一个vuejs项目,我想用列表组件实现搜索组件 我从搜索组件中获得了所需的东西,并将其传递给列表组件,并且在其中有一个用于过滤其列表项的计算功能
我尝试了此操作,但没有按预期工作
filteredItems() {
return this.items.filter(item => {
if (this.search != "") return item.includes(this.search);
else return true;
});
}
如果我具有列表项这样的数组,则在此代码中
items:[
['abc','def','ghi'],
['ajk,'lmn','opq']
]
如果我将'a'传递给我的计算函数,则我想同时使用这两个数组,但一无所获,我必须专门传递'abc'才能获得第一个数组,而这不是搜索的原理。
有人可以帮我解决这个问题吗?
答案 0 :(得分:6)
您需要使用.some
检查是否有任何数组项包含子字符串:
const items = [
['abc','def','ghi'],
['ajk','lmn','opq']
];
const doFilter = search => (
items.filter(
(arr) => arr.some((str) => str.includes(search))
)
);
console.log(doFilter('a'));
console.log(doFilter('ab'));