js下数组相同值过滤函数

相对PHP来说,JS数组下的相同值就需要一一对比,然后取空而达到相同的值只显示一次的效果,下面这个函数即可将数组中相同的值过滤掉,并返回未包含重复值的数组。

<script type="text/javascript" language="javascript">
function filterArray(array){
	var key = 0; //初始化键值
	var arr = new Array(); //声明一个数组
	var num = array.length; //数组长度
	for(var i = 0 ;i < num;i++){ //对数组进行交叉对比
	 //当对重复的值对比时,避免对比当前自己,需要在当前的基础上+1,比如array[0],array[1],如果对比array[0]的时候并不是拿自身array[0],而是array[1]
		for(var j = i+1;j < num;j++){ 
			if(array[i] == array[j]){ //将交叉的数组对比
				array[i] = null; //如果相等则 unset
				break; //并跳出
			}	
		}
	}
	
	for(var i = 0;i<num;i++){  //将数组进行for遍历
		if(array[i]){ //判断是否为空
			arr[key++] = array[i]; //将过滤后的数组给新数组arr赋值
		}
	}
	return arr;
}	
</script>

demo:

<script type="text/javascript" language="javascript">
var arrDemo = new Array(1,2,1,1,4,6,7,1,2,6,11,21,11);
console.log(filterArray(arrDemo));
alert(filterArray(arrDemo));
</script>

Leave a Reply

(will not be published)