网站地图    收藏   

主页 > 前端 > javascript >

js过滤数组中相同的值函数

来源:自学PHP网    时间:2014-09-19 14:48 作者: 阅读:

[导读] 过滤重复值是数组中一个常用到的功能了,我们这里可以利用遍历来进行操作,希望此文章对各位有帮助。...

例1

 代码如下 复制代码

<script type="text/javascript">
    Array.prototype.del = function() {
        var a = {}, c = [], l = this.length;
        for (var i = 0; i < l; i++) {
            var b = this[i];
            var d = (typeof b) + b;
            if (a[d] === undefined) {
                c.push(b);
                a[d] = 1;
            }
        }
        return c;
    }
    var myArr=['text','text','5','2','2','3','4','5','5'];
    document.write(myArr.del());
          
</script>

例2

 代码如下 复制代码

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

调用方法

 代码如下 复制代码

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论