消除多維數(shù)組中的重復(fù)數(shù)
//思考:先考慮一維數(shù)組崎坊,然后在判斷一維數(shù)組里可能會(huì)出現(xiàn)多維數(shù)組的情況另患,然后用遞歸敛熬,處理每一個(gè)arr【i】 是數(shù)組的情況
//方法一:
var num=["a","a",[1,1,1,1,1],[2,2,2,2]]
function delerepeat(arr)
{
if(arr instanceof Array == false)
{
return;
}
var newarr=[];
for(var i=0;i<arr.length;i++)
{
if(arr[i] instanceof Array)
{
newarr.push(delerepeat(arr[i]));
}else
{
var flag=true;
for(var j=i+1;j<arr.length;j++)
{
if(arr[i]==arr[j]){
flag=false;
break;
}
}
if(flag)
{
newarr.push(arr[i]);
}
}
}
return newarr;
}
alert(delerepeat(num));
//方法二:
思考:利用一個(gè)數(shù)組與另外一個(gè)數(shù)組比較归园,如果要插入的數(shù)和newarr中數(shù)組元素不一樣(或者說不存在)桥爽,就插入甸祭,
var num=["a","a",[1,1,1,1,1],[2,2,2,2]];
alert(delerepeat(num));
function delerepeat(arr)
{
var newarr=[];
for(var i=0;i<arr.length;i++)
{
if(arr[i] instanceof Array)
{
newarr.push(delerepeat(arr[i]));
}else
{
var a=checkNum(newarr,arr[i]);
if(a==true)
{
newarr.push(arr[i]);
}
}
}
return newarr;
}
function checkNum(newarr,num)
{
var flag=true;
for(var i=0;i<newarr.length;i++)
{
if(newarr[i]==num)
{
flag=false;
break;
}
}
return flag;
}