【发布时间】:2017-05-26 04:41:59
【问题描述】:
我正在使用 Vue 并尝试使用 JS 函数组合过滤结果数组。
我的 Vue 计算值是这样的,但无法让 filteredByAll 接受第三个选项 getByThing。现在 filterByAll 只过滤类别和关键字搜索。
computed: {
filteredByAll() {
return getByCategory(getByKeyword(this.list, this.keyword), this.category)
},
filteredByKeyword() {
return getByKeyword(this.list, this.keyword)
},
filteredByCategory() {
return getByCategory(this.list, this.category)
},
filteredByThing() {
return getByThing(this.list, this.thing)
}
}
我的标准 JS 函数
function getByKeyword(list, keyword) {
const search = keyword.trim()
if (!search.length) return list
return list.filter(item => item.name.indexOf(search) > -1)
}
function getByCategory(list, category) {
if (!category) return list
return list.filter(item => item.category === category)
}
function getByThing(list, thing) {
if (!thing) return list
return list.filter(item => item.thing === thing)
}
我正试图将我的头脑围绕在功能性的东西上,但从我所阅读的内容中挣扎。
【问题讨论】:
标签: javascript arrays function functional-programming