所以我尝试在我的一个函数中使用这个Filter,但是即使匹配很少,过滤器也返回空数组。
代码
filteredCardList: function () {
if (this.monthFilter.length > 0) {
return this.cardList.filter((card) => {
this.monthFilter.forEach(function (val) {
if (val.toString() == card.months) {
console.log('Matched')
return true;
} else {
console.log('NoMatch')
return false;
}
});
})
} else {
return this.cardList
}
}
任何想法,非常欢迎
感谢
答案 0 :(得分:1)
好的,假设monthFilter
是一个数组,并且您希望使用任何匹配类型按内部值过滤cardList
,请尝试使用Array.prototype.some
< / p>
filteredCardList: function () {
if (this.monthFilter.length > 0) {
return this.cardList.filter(card => {
return this.monthFilter.some(val => {
return val.toString() == card.months
})
})
} else {
return this.cardList
}
}
您的问题是,return true
/ return false
只是从forEach
回调中返回,而filter
回调中没有返回任何内容。