两个单词之间的Javascript差异

Javascript difference between two words

本文关键字:之间 Javascript 差异 单词 两个      更新时间:2023-09-26

如何检测两个相似单词之间的差异?

例如:

  • word,相比,word给出了,作为变量
  • .this相比,this给出了.作为变量
  • :info,相比,info给出了:,作为变量

在这种情况下,我们总是知道哪个单词是较长的。而实际的单词在比较时总是一样的。只是长一点的可能有一些额外的字符。

我只需要使用javascript来完成这项工作。

您可以尝试检查字符数组之间的差异。

var shortStr = 'info';
var longStr = ':info,';
console.log(Array.from(longStr).filter(function(c) {
    return Array.from(shortStr).indexOf(c) === -1;
}));

此外,还有一种更好的方法,检查字符串是否是子字符串,然后从主字符串中删除子字符串:

function checkDiff(a, b) {
  var big = '', small = '';
  if (a.length > b.length) {
    big = a;
    small = b;
  } else {
    small = a;
    big = b;
  }
  if (big.indexOf(small) != -1) {
    return big.replace(small, "");
  } else {
    return false;
  }
}
alert(checkDiff("word", "word,"));
alert(checkDiff("this", ".this"));
alert(checkDiff("info", ":info,"));

我已经为您的所有案例添加了演示。它根据发生的位置将值作为单个字符串返回。您也可以使用.split()方法将输出作为数组发送。

function checkDiff(a, b) {
  var big = '', small = '';
  if (a.length > b.length) {
    big = a;
    small = b;
  } else {
    small = a;
    big = b;
  }
  if (big.indexOf(small) != -1) {
    console.log(big.replace(small, "").split(""));
    return big.replace(small, "").split("");
  } else {
    return false;
  }
}
alert(checkDiff("word", "word,"));
alert(checkDiff("this", ".this"));
alert(checkDiff("info", ":info,"));