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

如何使用JavaScript对比两个字符串查找差异并返回缺失的单词

原代码问题排查
  • 调用mainArr.toLowerCase()属于语法错误:toLowerCase是字符串专属方法,拆分后的mainArr是数组类型,无法直接调用该方法
  • subArr.toLowerCase.includes(x)存在两处错误:一是数组不能直接调用toLowerCase,二是方法调用缺少括号,语法不合法
  • 函数直接依赖外部全局变量main和sub,复用性差
正确实现代码

严格大小写匹配版本

要求单词大小写完全一致才判定为匹配,实现如下:

let main = "i am really calm at this moment";
let sub = "am this";

function missingWords(mainStr, subStr) {
  const mainWords = mainStr.split(" ");
  const subWords = subStr.split(" ");
  // 过滤出主字符串中不在子字符串里的单词
  return mainWords.filter(word => !subWords.includes(word));
}

console.log(missingWords(main, sub));
// 输出结果:["i", "really", "calm", "at", "moment"]

大小写不敏感匹配版本

如果需要忽略大小写判定匹配(例如Am和am判定为同一个单词),可以用以下实现:

function missingWords(mainStr, subStr) {
  const mainWords = mainStr.split(" ");
  // 子字符串单词统一转小写存储,减少重复转换开销
  const subLowerWords = subStr.split(" ").map(word => word.toLowerCase());
  return mainWords.filter(word => !subLowerWords.includes(word.toLowerCase()));
}

内容的提问来源于stack exchange,提问作者One of Stones

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:27:00