数组去重(数组里可以嵌套数组、对象)

<script>
function equal(o1,o2){
	
	if(o1===o2){return true;}
	if(typeof(o1)!==typeof(o2)){
		return false;
	}
	if(String(o1)!==String(o2)){
		return false;
	}
	if(typeof(o1)===typeof([])){
		// if(o1.length!==o2.length){
			// return false;
		// }
		// b1=true
		// for(i in o1){
			// if(!equal(o1[i],o2[i])){
				// return false
			// }
			
		// }
		if(JSON.stringify(o1)[0]!==JSON.stringify(o2)[0]){
			return false;
		}
		if(Object.keys(o1).length===Object.keys(o2).length){
			b2=false
			for(i in o1){
				if(!equal(o1[i],o2[i])){
					return false
				}
			}
			return true
			
		}else{
			return false;
		}
		return true
	}
	if(typeof(o1)===typeof({})){
		
	}
}
function quchong(arr){
	arr1=arr.slice()
	cf=1
	while(cf===1){
		cf=0
		for(index =0;index<arr1.length;index++){
		value=arr1[index]
			for(index1 =0;index1<arr1.length;index1++){
				value1=arr1[index1]
				
				if (equal(value,value1)&&index!=index1){
					
					
					console.log(''+index+1,arr1[index],'去除第'+(index1+1)+'个元素:',arr1.splice(index1,1))
					cf=1
					console.log(arr1.length)
					
				}
			}
		}
		
		
	}
	console.log(arr1)
	return arr1
	
}

arr=[1,2,null,3,3,4,5,6,1,2,3,'i',null,undefined,undefined,{a:5,b:"1"},{a:3},{a:3},[1,2,3],[1,2,3],[1,2,3,4],1,
2,null,3,3,4,'null','undefined',5,6,'1','1',[{1:4,2:{qqq:'aaa'}},2],[{1:4,2:{qqq:'aaa'}},2],
1,2,3,'i',null,undefined,undefined,{a:5,b:"1"},{b:1,a:5},{a:5,b:1},{a:3},{a:3},[1,2,3],[1,2,3],[1,2,3,4],
[1,2,[3,5]],[1,2,[3,5]],{ss:{zz:1,aa:[1,2,3,4]}},{ss:{zz:1,aa:[1,2,3,4]}},true,false,true,true,'true','true',

]
console.log('原数组:',JSON.parse(JSON.stringify(arr)))
quchong(arr)
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值