You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何基于另一数组的字符匹配规则过滤数组

基于字符匹配逻辑的数组过滤实现

完全可以实现该需求,核心匹配规则为:日志条目的log字段只要包含过滤规则数组中任意一个关键词,该条目就会被保留在返回结果中,可以直接借助JavaScript原生数组方法实现,无需额外依赖。

核心实现代码

/**
 * 按关键词过滤日志数组
 * @param {Array} logList - 原始日志数据集
 * @param {Array} keywordList - 过滤关键词数组
 * @returns {Array} 过滤后的日志结果
 */
function filterLogs(logList, keywordList) {
  return logList.filter(logItem => {
    // 校验当前日志是否命中任意一个过滤关键词
    return keywordList.some(keyword => logItem.log.includes(keyword))
  })
}

场景验证

测试用例1:过滤关键词为["log"]

// 修正原示例语法问题后的标准日志数据集
const logs = [
  {id: 1, log: "log1"},
  {id: 2, log: "log2"},
  {id: 3, log: "fail"}
]
const filterRule1 = ["log"]
console.log(filterLogs(logs, filterRule1))

运行输出和预期完全一致:

[{id:1, log: "log1"}, {id:2, log: "log2"}]

测试用例2:过滤关键词为["1", "fai"]

const filterRule2 = ["1", "fai"]
console.log(filterLogs(logs, filterRule2))

运行输出匹配预期:

[{id:1, log: "log1"}, {id:3, log: "fail"}]

扩展说明:如果需要忽略大小写匹配,只需要把匹配逻辑调整为logItem.log.toLowerCase().includes(keyword.toLowerCase())即可;如果需要所有关键词都命中才保留,把some方法替换为every方法就行。

内容的提问来源于stack exchange,提问作者CodeNoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 11:36:17