1. 程式人生 > >JS兩個陣列去重

JS兩個陣列去重

今天早上有朋友在問這個題:

這是別人的答案:

我想了一下,不對,如果有重複的 就GG

我自己寫了一下:

// 
var arr=[1,2,2,2,2,4,2,2,2,4,2,22,2,];
var arr1=[1,1,1,1,1,1,1,1,1,1,1,4,4,2,2,1];

function diff(arr,arr1){		
	var a=[];var b=[];var r;
	for(var i=0;i<arr.length;i++){
		var index=arr1.indexOf(arr[i]);
		if(index!=-1){
			var r=a[i];
			for(var j=index;j<arr1.length;j++){
				if(arr1[j]==arr[i]){
					arr1.splice(j,1);
					j=j-1;
				}		
			}
			for(var k=i+1;k<arr.length;k++){
					if(arr[k]==arr[i]){	
						arr.splice(k,1);
						k=k-1;
					}
			}
			arr.splice(i,1);
			i=i-1;			
		}
	}
	return arr.concat(arr1);
}
var result=diff(arr,arr1);
console.log(result);
	

我自己測試了一下 ,暫時沒有什麼問題。