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