Javascript 当给定关键字和要搜索的字段列表时,如何筛选数组?
我有以下代码:Javascript 当给定关键字和要搜索的字段列表时,如何筛选数组?,javascript,arrays,Javascript,Arrays,我有以下代码: export function getByKeyword(list, keyword, searchFields) { const search = keyword.trim().toLowerCase() if (!search.length) { return list } return list.filter(item => item.name.toLowerCase().indexOf(search
export function getByKeyword(list, keyword, searchFields) {
const search = keyword.trim().toLowerCase()
if (!search.length) {
return list
}
return list.filter(item =>
item.name.toLowerCase().indexOf(search) > -1 ||
item.email.toLowerCase().indexOf(search) > -1
)
}
目前我正在使用| |和硬编码字段进行搜索
但是,我希望使函数更具可重用性,并传入searchFields,这是一个要搜索的字段数组(例如,[名称]、[电子邮件]、[组]。可以使用
完美!谢谢,很好,很整洁!当被搜索的字段为空时出现问题。我如何忽略空字段?完成了。返回列表。筛选器(item=>{return filter_fields.some(field=>(item[field]!==null)?item[field].toLowerCase().includes(搜索):“”)
export function getByKeyword(list, keyword, searchFields) {
const search = keyword.trim().toLowerCase()
if (!searchFields.length) {
return list
}
return list.filter(item =>{
return searchFields.some(field=> item[field].toLowercase().includes(keyword));
});
}