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));
    });
}