Vue.js 如何处理VueJS筛选器中的空值?
以下过滤器工作正常Vue.js 如何处理VueJS筛选器中的空值?,vue.js,Vue.js,以下过滤器工作正常 filteredItems() { return this.items.filter(item => item.name.toLowerCase().indexOf(this.search.toLowerCase()) > -1) } 然而,当我尝试筛选第二列时,我有两个问题 return this.items.filter(item => item.name.toLowerCase()
filteredItems() {
return this.items.filter(item =>
item.name.toLowerCase().indexOf(this.search.toLowerCase()) > -1)
}
然而,当我尝试筛选第二列时,我有两个问题
return this.items.filter(item =>
item.name.toLowerCase().indexOf(this.search.toLowerCase()) > -1)
.filter(item =>
item.location.toLowerCase().indexOf(this.search.toLowerCase()) > -1)
第一个问题,有时位置是空的,所以页面不会加载。为了测试,我将数据库中的空值更新为空值,并且页面没有错误
其次,我不能按位置搜索(即使null设置为空白)
*****编辑****
似乎它需要两个过滤器都是真的。。。因此,我将检查文档…首先,您可以检查无效值,如
null、undefined、“
并通过名称或位置进行安全搜索。以下是一个例子:
函数filteredItems(){
将此邮件退回
.filter(项目=>{
return(item.name&&item.name.toLowerCase().indexOf(this.search.toLowerCase())>-1)|
(item.location&&item.location.toLowerCase().indexOf(this.search.toLowerCase())>-1)
})
}
首先,您可以检查无效值,如空值、未定义“
,然后通过名称或位置进行安全搜索。以下是一个例子:
函数filteredItems(){
将此邮件退回
.filter(项目=>{
return(item.name&&item.name.toLowerCase().indexOf(this.search.toLowerCase())>-1)|
(item.location&&item.location.toLowerCase().indexOf(this.search.toLowerCase())>-1)
})
}
您可以使用|
操作符添加usename
或location
过滤器,如:
filteredItems() {
var search = this.search.toLowerCase();
return this.items.filter(({name = '', location = ''}) => {
return name.toLowerCase().indexOf(search) > -1 || name.toLowerCase().indexOf(search) > -1;
})
}
要解决null
问题,您可以将空字符串设置为name
和location
的默认值,如({name='',location='})
您可以使用|
操作符添加使用name
或location
过滤器,如:
filteredItems() {
var search = this.search.toLowerCase();
return this.items.filter(({name = '', location = ''}) => {
return name.toLowerCase().indexOf(search) > -1 || name.toLowerCase().indexOf(search) > -1;
})
}
要解决null
问题,可以将空字符串设置为name
和location
的默认值,如({name='',location=''})