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>
<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>
<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>
<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>