如何在两个不同的textarea中找到相同的单词并计算它们?

时间:2018-01-05 20:50:31

标签: javascript html

我有多个包含数百个数据的excel列。我想在这些列中找到相同的单词。例如, 第一栏:狗鼠捕捉一些猫叉苹果, 第二栏:叉狗灯歌苹果一些赞美诗蜡烛等,输出将是“狗,一些,叉子,苹果”。

我在Intersecting texts to find common words这个帖子中找到了这段代码。它适用于字符串,但不适用于textareas和输入。我试图修改它以解决我的问题但是,我失败了。

提前致谢。

var t1 = document.getElementById('first').value;
var t2 = document.getElementById('second').value;
function intersect() {
    var set = {};
    [].forEach.call(arguments, function(a,i){
      var tokens = a.match(/\w+/g);
      if (!i) {
        tokens.forEach(function(t){ set[t]=1 });
      } else {
        for (var k in set){
          if (tokens.indexOf(k)<0) delete set[k];
        }
      }
    });
    return Object.keys(set);
 }

 console.log(intersect(t1, t2));
<textarea id="first"></textarea>
<textarea id="second"></textarea>

2 个答案:

答案 0 :(得分:0)

 function intersect() {
        let arr1 = t1.split("/*you can split by comma or whitespace*/");
        let arr2 = t2.split("");
        let result = [];
        for (let i = 0; i < arr1.length; i +=1) {
            for (let i1 = 0; i1 < arr2.length; i1 +=1 {
                if (arr1[i] === arr2[i1]) {
                    result.push(arr[i]);
                    break;
                }
            }
        }
        return result;
    }

试试这个。

答案 1 :(得分:0)

这是我的尝试:

function update(){
  var result = compare(
    document.getElementById("first").value,
    document.getElementById("second").value,
    " " //Space
  );
  console.log(result);
}
  
function compare(haystack, needles, separator) {
  var result = new Array();
  var HaystackArray = haystack.split(separator);
  var NeedlesArray = needles.split(separator);
  HaystackArray.forEach(function(needle) {
    if(!NeedlesArray.includes(needle))
      return;
    //Remove that if you want to allow words to be in the result multiple times
    if(result.includes(needle))
      return;
    
    result.push(needle);
  });
  return result;
}
<textarea id="first" onChange='update()'>Lorem ipsum dolor sit amet, consectetur adipiscing elit</textarea>
<textarea id="second" onChange='update()'>Lorem ipsum in hac habitasse platea dictumst consectetur dolor</textarea>