js数组去重

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
</body>
<script>
	//数组去重
	//构建一个新数组,将结果放在新数组中
	//方法1:建构一个为false的标志,将原数组中的元素与结果数组中的元素进行循环比较,如果一发现重复,则马上标志为true,退出此次循环,如果原始数组中某个元素与结果数组中的元素一轮比较下来,标志还为false,则证明此元素不重复,则将那个元素放入结果数组中
	function removeDuplicates(arr) {
		var result = new Array();
		for(var i =0;i<arr.length;i++){
			var repeat=false;
			for(var j=0;j<result.length;j++){
				if(arr[i]==result[j]){
					repeat=true;
					break;
				}
			}
			if(!repeat){
				result.push(arr[i]);
			}
		}
		return result;
	}
var Result = removeDuplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]);
console.log(Result);

//方法2:构建一个结果数组,现将初始数组sort排序,如果是数值相等的元素肯定会是相邻元素,将原始数组中第i个元素与结果数组中最后一个元素相比较,如果不相等则将d第i个元素push进结果数组
var array2=[1, 2, 4, 4, 3, 3, 1, 5, 3,8,9,8];
var result2=new Array();
function removeDuplicates2(array){
	array.sort();
var result2=new Array();
	for(var i=0;i<array.length;i++){
		if(array[i]!=result2[result2.length-1]){
			result2.push(array[i]);
		}
	}
	return result2;
}
var Result2=removeDuplicates2(array2);
console.log(Result2);

//方法3(推荐使用),创建一个结果数组,创建一个空对象,将原数组中的第i个元素与对象中的属性进行比较,如果不能在对象中访问到该属性,则将元素存入结果数组中,也将元素的内容作为对象的一个属性,赋值为1,取出原始数组一个元素,如果能在对象中访问到则说明这个元素是重复的
var array3=[112,112,34,'你好',112,112,34,'你好','str','str1'];
var json={};
var result3=new Array();
function removeDuplicates3(array){
	for(var i=0;i<array.length;i++){
		if(!json[array[i]]){
			
			json[array[i]]=1;
			result3.push(array[i]);
		}
	}
	return result3;
}
var Result3=removeDuplicates2(array3);
console.log(Result3);
</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值