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

JavaScript实现JSON数据关键词模糊搜索筛选匹配条目

JSON数组字段模糊匹配筛选实现

核心实现(JavaScript环境)

直接用数组filter方法配合字符串包含判断即可实现需求,完整代码如下:

// 原始数据(已移除原JSON数组末尾多余的尾逗号,避免严格模式下JSON解析报错)
const data = {
  "userDetail": [
    {
      "Name": "Scottic Mangry",
      "Age": "12"
    },
    {
      "Name": "Joneson Mangly",
      "Age": "18"
    },
    {
      "Name": "Saoyu Wang",
      "Age": "15"
    }
  ]
};
const searchKeyword = "Mang";

// 执行筛选
const result = data.userDetail.filter(item => {
  // 先校验Name字段为字符串类型,避免空值/非字符串值触发报错
  return typeof item.Name === 'string' && item.Name.includes(searchKeyword);
});

执行后result的内容和预期返回结果完全一致,包含两个Name字段带"Mang"关键词的条目。

常见适配调整

  • 不区分大小写搜索:将判断逻辑改为item.Name.toLowerCase().includes(searchKeyword.toLowerCase())即可
  • 数据源为JSON字符串:先调用JSON.parse(你的JSON字符串)转为JS对象后再执行筛选,筛选后如果需要转回JSON格式字符串,用JSON.stringify(result, null, 2)可输出格式化后的JSON
  • 兼容老旧运行环境:如果运行环境不支持字符串includes方法,可替换为indexOf判断:item.Name.indexOf(searchKeyword) !== -1,逻辑效果完全一致
  • 多字段匹配搜索:如果后续需要同时匹配多个字段,只要在判断条件中追加对应字段的匹配规则即可,比如同时匹配Name和Age字段:
    return item.Name?.includes(searchKeyword) || String(item.Age).includes(searchKeyword)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:15:30