<script language=javascript>
var a=new Array('a','b','c');
var b=new Array('a','b','d','e');
var c=new Array();
var temp=","+b.join(",")+",";
var re;
for(var i=0;i<a.length;i++)
{
re=new RegExp(","+a[i]+",")
if(re.test(temp))
{
temp=temp.replace(re,",")
}
}
c=temp.substr(1,temp.length-2).split(",")
alert(c)
</script>

解决方案 »

  1.   

    上面那个是补集,再来个交集
    <script language=javascript>
    var a=new Array('a','b','c');
    var b=new Array('a','b','d','e');
    var c=new Array();
    var temp=","+b.join(",")+",";
    var re;
    for(var i=0;i<a.length;i++)
    {
    re=new RegExp(","+a[i]+",")
    if(re.test(temp))
    {
    c.push(a[i])
    }
    }
    alert(c)
    </script>
      

  2.   

    最上面那个还可以在优化下
    <script language=javascript>
    var b=new Array('a','b','c');
    var a=new Array('a','b','d','e');
    var c=new Array();
    var temp=","+b.join(",")+",";
    var re;
    for(var i=0;i<a.length;i++)
    {
    re=new RegExp(","+a[i]+",")
    if(!re.test(temp))
    {
    c.push(a[i])
    }

    }
    alert(c)
    </script>
      

  3.   

    对不起,要的是补集
    数组A :{a,b,c}
    数组B :{a,b,d,e}
    那么我们要的结果是{d,e}
    注意A中元素不一定在B中存在