jquery删除数组中的重复值或元素亲测 原创

文章标签: jquery数组
  • :
  • 07-10 16:30
  • :
  • 141次
  • :
  • 0条
  • 0赞

简介jquery里删除数组中重复的值或元素的方法及实例l

在jquery里,其实内置有一个函数用来删除数组中重复的值或元素的:$.unique :

    PS:站长以前总结过jquery里和数组相关的几个函数http://www.aijquery.cn/Html/jqueryhanshu/99.html

只是因为用的少,所以我们在需要给数组去重的时候,往往会想不起来~~-_-!!!

下面站长来具体的用几个实例来说下$.unique函数来删除数组中重复元素的方法:
实例1:普通的数值型的一维数组:

var arr=[2,1,3,2,4,5,1,2];
var arrt=$.unique(arr);
document.write(arrt.join(","));    //输出 5,4,3,1,2

//要注意的是,即使上面我们新声明了一个变量arrt,但使用$.unique来去除数组里的重复值后,原本的数组arr也是会被改变的!


实例2:普通的数值型的二维数组:

//假如我们有下面这样一个二维数组:
var arr=[[2,1,2],[2,1,2],[3,1,2]];

//我们用$.unique是达不到去除重复的效果的:
var arrt=$.unique(arr);  	
document.write(arr.join(","));    //输出 3,1,2,2,1,2,2,1,2

//只能用循环判断的方法,没有简捷的途径的:
var arr=[[2,1,2],[2,1,2],[3,1,2]];  	
var hash = {};      
var result = [];      
for(var i=0,len=arr.length;i<len;i++){          
    if(!hash[arr[i]]){              
        result.push(arr[i]);              
        hash[arr[i]] = true;          
    }      
} 
document.write(result.join(","));    //输出 2,1,2,3,1,2


实例3:对象型数组:

在jquery里,我们可以直接把标签对象放到一个数组里的,对于这种数组,要如何去除重复呢?

假如我们的网页里有这样一段HTML代码:

<b>1</b> <b>2</b> <b>1</b>
<b>2</b> <b>1</b>

那么我们要如何去除其中的重复元素呢?

//先来测试$.unique是否可以使用:
var arr=$.makeArray($("b"));  	
var arrt=$.unique(arr);//站长亲测过的,$.unique在这时是不起作用的

//因为jquery对象和dom对象是不一样的,所以把jquery对象转换为dom对象再测试:
var arr=$.makeArray($("b").get());  	
var arrt=$.unique(arr);    //同样不起作用的

//唯一的方法就是只获取标签里的文本,生成数组,去重后,再重新包裹上标签
var arr=$("b").map(function(){return $(this).html();}).get();  	
$.unique(arr);
var result="<b>"+arr.join("</b><b>")+"</b>";


您正在找的文章可能是:
热点文章
热点图文
最近更新
  • Copyright © aijquery.cn 爱jQuery-完全免费的jquery交流学习网站
  • 豫ICP备17037455号-1
  • 2018-11-15 14:46:28