100 分居然没人取,俺来,哈基本思路:先倒排序并复制数组,然后两层循环比较,发现一样滴就删除,并判断终止循环条件,最后剩下来滴就是你要滴结果。代码如下,L@_@K:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Array Compare</title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="[email protected]" />
  <meta name="keywords" content="javascript" />
  <meta name="description" content="for javascript region of csdn" />
 </head> <body>
  <script type="text/javascript">
  <!--
function AscSort(x, y) {
  return x == y ? 0 : (x > y ? 1 : -1);
}function DescSort(x, y) {
  return x == y ? 0 : (x > y ? -1 : 1);
}var arrNum1 = new Array(5, 1, 3, 2);
var arrNum2 = new Array(12, 7, 5, 3);// 字符串也好用,哈!
// var arrNum1 = new Array("t", "b", "w", "i");
// var arrNum2 = new Array("bb", "t", "a", "ww");var arrNum1Copy = arrNum1.slice(0).sort(DescSort);
var arrNum2Copy = arrNum2.slice(0).sort(DescSort);
// 数组交换标志。
var isExchange = false;if (arrNum1Copy[arrNum1Copy.length-1] < arrNum2Copy[arrNum2Copy.length-1])
{
    isExchange = true;
    var tempArray = arrNum1Copy;
    arrNum1Copy = arrNum2Copy;
    arrNum2Copy = tempArray;
}var cycleStopping = false;
for (var i=arrNum1Copy.length-1; i>=0; i--)
{
    for (var j=arrNum2Copy.length-1; j>=0; j--)
    {
        if (arrNum1Copy[i] > arrNum2Copy[0])
        {
            cycleStopping = true;
            break;
        }
        else if (arrNum1Copy[i]==arrNum2Copy[j])
        {
            arrNum1Copy.splice(i, 1);
            arrNum2Copy.splice(j, 1);
            continue;
        }
    }
    if (cycleStopping) break;
}alert("isExchange: " + isExchange + "\n" + arrNum1Copy + "\n" + arrNum2Copy)  //-->
  </script>
 </body>
</html>

解决方案 »

  1.   

    可以用空间换时间的方法
    <script language=javascript>
    function find(a,b)
    {
    var temp={}
    var result=new Array();
    for(var i=0;i<a.length;i++)
    {
    temp[a[i]]=1
    }
    for(var i=0;i<b.length;i++)
    {
    if(!temp[b[i]])
    result.push(b[i])
    }
    return result;
    }
    var a=new Array('1','b','a','6')
    var b=new Array('2','b','a','3')
    var result1=find(b,a);
    var result2=find(a,b);
    alert(result1)
    alert(result2)
    </script>
      

  2.   

    改了下:hbhbhbhbhb1021(天外水火(我要多努力)) 的算法.
    <script language="JavaScript">
    <!--
    //可以用空间换时间的方法
    function find(a,b)
    {
    var o={},ar = a.concat(b).sort();
    var rslt = [];
    for(var i=0;i<ar.length;i++)
    o[ar[i]]=true;
    for(var p in o)
    rslt.push(p);
    return rslt;
    }
    var a=new Array('1','b','a','6')
    var b=new Array('2','b','a','3')
    var result1=find(b,a);
    var result2=find(a,b);
    alert(result1)
    alert(result2)
    //-->
    </script>