当给定关键字和要搜索的字段列表时,如何筛选数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (73)

我有以下代码:

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

目前,我正在使用并对字段进行硬编码以进行搜索。

然而,我想使函数可重用,并传递搜索字段,这是一个字段数组的搜索,例如[ 'name', 'email', 'group' ]。

提问于
用户回答回答于

Array#some()

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

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问5 回答
  • uncle_light

    5 粉丝518 提问3 回答
  • 学生

    2 粉丝477 提问3 回答
  • 军哥

    重庆雷驰信息技术有限公司 · 经理 (已认证)

    5 粉丝1 提问3 回答

扫码关注云+社区

领取腾讯云代金券