相对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>