比如,This is a dog.和this is a cat.
然后,应该输出"is,a"应该用怎样的函数来比较?

解决方案 »

  1.   

    参考如下代码:
    function duplicateWord(a, b) {
    if (!a || !b) return;
    var dict = {};
    var result = [];
    a.replace(/\w+/g, function() { // 获得第一组单词
    dict[arguments[0]] = true;;
    });
    b.replace(/\w+/g, function() { // 判断单词是否重复,如果重复添加到结果中
    if (dict[arguments[0]])
    result.push(arguments[0]);
    });
    return result;
    }var words = duplicateWord("This is a dog.", "this is a cat.");
    alert(words);
      

  2.   

    给String添加一个函数<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <script>
      String.prototype.sameElements = function(str){
    var arr = new Array();
    str = str.replace(".","");
    var temp = str.split(" ");
    for(var i=0;i<temp.length;i++){
    if(this.indexOf(temp[i])!=-1){
    arr.push(temp[i]);
    }
    }
    return arr;
      }
      var str1 = "This is a dog."
      var str2 = "this is a cat."
      alert(str1.sameElements(str2));
      </script>
     </HEAD> <BODY>
      
     </BODY>
    </HTML>
      

  3.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <script>
      Array.prototype.isHave = function(str){  //判断str2是否在数组中
    for(var i=0;i<this.length;i++){
    if(this[i]==str){
    return true ;
    }
    }
    return false;
      }  function compareStr(str1,str2){
    var arr = new Array();
    var reg = /\s+/g;
    str1 = str1.replace(".","");
    str2 = str2.replace(".","");
    str1 = str1.split(reg);
    str2 = str2.split(reg);
    for(var i=0;i<str2.length;i++){
    if(str1.isHave(str2[i]) && !arr.isHave(str2[i]) ){
    arr.push(str2[i]);
    }
    }
    return arr ;
      }
      var str1 = "This is a    dog."
      var str2 = "this is a is cat."
      alert(compareStr(str1,str2));
      </script>
     </HEAD> <BODY>
      
     </BODY>
    </HTML>这样可能比较好一点,去除重复的单词
      

  4.   

    谢谢楼上贴出代码的人,谢谢不过,我们的JAVASCRIPT目前刚开始学,比较皮毛,我看不懂 T T
    这两个都是什么意思呢?
    刚刚查了一下,好像跟什么正则表达有关?
    看着眼晕Array.prototype.isHave 
    reg = /\s+/g
      

  5.   

    Array.prototype.isHave = function 这样是给Array对象添加一个方法
    var reg = /\s+/g;这样是定义一个正则表达式
    http://www.w3school.com.cn上面看看基础教程吧