前端多字段模糊查询

直接上代码

const arr = [
  {id: "1", en: "Afghanistan", cn: "阿富汗", code: "93"},
  {id: "2", en: "Iraq", cn: "伊拉克", code: "964"},        
  {id: "3", en: "Qatar", cn: "卡塔尔", code: "974"},
  {id: "4", en: "China", cn: "中国", code: "933"},
]
/**
 * @description: 多字段模糊查询
 * @param {[object]} arr 需要处理的对象数组
 * @param {string} query 参数
 * @param {[string]} key 要查哪些字段
 * @return {[object]} 返回符合条件的对象数组, 不传默认查所有key
 */
function search(arr, query, key = []) {
  return arr.filter(v =>
    Object.values(
      Object.fromEntries(
        Object.entries(v).filter(item => key.length ? key.includes(item[0]) : true)
      )
    ).some(v => new RegExp(query + "").test(v))
  );
}

search(arr, "3")
search(arr, "3", ['id'])

猜你喜欢

转载自blog.csdn.net/m0_37793545/article/details/120534435