【发布时间】:2019-03-27 21:07:01
【问题描述】:
我正在寻找一种优雅的方式来生成布尔值,这些布尔值最终将在过滤器方法的回调函数中使用 && 运算符进行连接。
我尝试循环遍历过滤条件,但找不到将每个迭代结果加入以下格式的方法:
return Boolean && Boolean && Boolean && Boolean && Boolean
因为 += && 布尔值不起作用。
这是我所拥有的和正在工作的:
//data I am filtering
this.preSearch = [
["The Lord of the Rings", "J. R. R. Tolkien", "English", "1955", "150 milionów"],
["Le Petit Prince (The Little Prince)", "Antoine de Saint-Exupéry", "French", "1943", "140 milionów"],
["Harry Potter and the Philosopher's Stone", "J. K. Rowling", "English", "1997", "120 milionów"],
["The Hobbit", "J. R. R. Tolkien", "English", "1937", "100 milionów"],
["And Then There Were None", "Agatha Christie", "English", "1939", "100 milionów"],
["Dream of the Red Chamber", "Cao Xueqin", "Chinese", "1791", "100 milionów"]
]
//filters, that are set dynamically but let's pretend they are equal to
var filters = ["", "", "english", "19", "1"]
var searchdata = this.preSearch.filter(row => {
return
row[0].toLowerCase().indexOf(filters[0].toLowerCase()) > -1
&& row[1].toLowerCase().indexOf(filters[1].toLowerCase()) > -1
&& row[2].toLowerCase().indexOf(filters[2].toLowerCase()) > -1
&& row[3].toLowerCase().indexOf(filters[3].toLowerCase()) > -1
&& row[4].toLowerCase().indexOf(filters[4].toLowerCase()) > -1
})
我需要可扩展且更优雅的解决方案,因此如果我增强过滤后的数组,我就不必再用 && 添加一行。
【问题讨论】:
标签: javascript loops filter callback higher-order-functions