Javascript 如何将filter()和includes()与localeCompare一起使用以避免重音
我正在寻找一种方法来过滤表,同时避免重音问题Javascript 如何将filter()和includes()与localeCompare一起使用以避免重音,javascript,vue.js,Javascript,Vue.js,我正在寻找一种方法来过滤表,同时避免重音问题 let options = ['Hello', 'Hého', 'Heïho']; filterOptions(filterValue) { this.filteredOptions = this.options.filter( option => option.includes( filterValue ) ) }, 使用上述函数,当我在options中输入单词“Heho”进行搜索时,它不会返回任何结果,因
let options = ['Hello', 'Hého', 'Heïho'];
filterOptions(filterValue) {
this.filteredOptions = this.options.filter(
option => option.includes( filterValue )
)
},
使用上述函数,当我在options
中输入单词“Heho”进行搜索时,它不会返回任何结果,因为我没有输入重音
我试过用这个,但根本没用
filterOptions(filterValue) {
this. filteredOptions = this. options.filter(
option => option.includes( filterValue.localeCompare(option, undefined, { sensitivity: 'base' }) === 0 )
)
},
您知道如何过滤表格以避免重音吗?只需使用逻辑进行过滤(使用未定义或“en”)。代码的问题是,它根据localeCompare返回的值来比较数组是否包含值true或false
options.filter(o => o.localeCompare('Heho', undefined, { sensitivity: 'base' }) === 0)
我找到了一个更简单的解决办法
filterOptions(filterValue) {
this. filteredOptions = this. options.filter(
option => option.toLowerCase().includes( filterValue.toLowerCase() )
)
},
我将所有字符串切换为小写以便比较