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

如何匹配JSON数组中与输入字符串部分匹配的元素?

实现输入字符串与JSON元素的单词匹配筛选

需求说明

将输入字符串与JSON数组中每个元素的指定字段(如name)进行比对,只要两者的单词集合存在至少一个匹配项(不区分大小写),就返回该元素。

示例

  • 输入字符串:"Angular work space"
  • 目标JSON数据:
[{"id":1,"name":"angular repo"},{"id":2,"name":"node repo"}]
  • 预期结果:返回{"id":1,"name":"angular repo"},因为输入中的"Angular"与该元素name字段中的"angular"匹配。

实现代码(JavaScript)

// 输入字符串
const inputStr = "Angular work space";
// 标准格式的JSON数据
const data = [{"id":1,"name":"angular repo"},{"id":2,"name":"node repo"}];

// 提取输入的单词并转为小写,用Set存储以提升查找效率
const inputWordSet = new Set(inputStr.toLowerCase().split(/\s+/));

// 筛选符合条件的元素
const matchedItems = data.filter(item => {
  // 拆分当前元素name字段的单词并转为小写
  const itemWords = item.name.toLowerCase().split(/\s+/);
  // 检查是否存在匹配的单词
  return itemWords.some(word => inputWordSet.has(word));
});

console.log(matchedItems);

关键逻辑说明

  1. 大小写统一:将输入字符串和JSON字段的内容都转为小写,避免大小写差异导致的匹配失败。
  2. 单词拆分:用split(/\s+/)拆分字符串,支持多个连续空格的场景。
  3. 高效查找:用Set存储输入的单词,将查找时间复杂度降为O(1)。
  4. 匹配判断:用some()方法检查当前元素的单词是否有任何一个存在于输入单词集合中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:20:39