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
相关产品推荐
相关产品推荐

