$.unique() 对象组成的数组去掉重复对象

时间:2021-08-19 17:05:32

发现一件事,一个完全由对象组成的数组,用$.unique()方法去掉重复的时候不管用

 var arr = [{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'},{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'}]

假设用 arr = $.unique(arr),这种方法处理一下,去掉重复的对象,结果返回的还是arr 原来的模样,长度位6,并没有去掉重复啊。

百思不得其解,查好长时间api才看明白

原来, 此功能只适用于普通的JavaScript DOM元素的数组,主要是jQuery内部使用。

说白了,只能遍历基本的数据类型吧,识别object还是有难度的。

那没办法咯,只能给他们每一个对象变成字符串,然后去掉重复,然后再给每一个字符串转成对象啦,最后拼成对象。

具体的代码如下:

var arr = [{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'},{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'}];
//arr = $.unique(arr);// 首先用 $.unique() 方法去掉重复一遍,然而并没什么卵用
console.log(arr);//看一下原来的数组
var arrResult = [];
for(var i=0;i<arr.length;i++){
arr[i] = JSON.stringify(arr[i]);//对象转成字符串的方法
arrResult.push(arr[i]);//重新填装成一个《字符串》组成的数组
}
arr = [];//清空原来的数据
arrResult = $.unique(arrResult); // 去掉重复的字符串
for(var j=0;j<arrResult.length;j++){
arrResult[j] = JSON.parse(arrResult[j]);// 重新给字符串转换成对象
arr.push(arrResult[j]);//重新填装成一个《对象》组成的数组
}
console.log(arr);//看一下组装后的数组

最后的结果:

$.unique() 对象组成的数组去掉重复对象

成功啦,成功喽!!!!

随机推荐

  1. iOS学习笔记——AutoLayout的约束

    iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...

  2. hive学习

    大数据的仓库Hive学习  10期-崔晓光 2016-06-20  大数据   hadoop   10原文链接 我们接着之前学习的大数据来学习.之前说到了NoSql的HBase数据库以及Hadoop中 ...

  3. Python数据分析之pandas学习

    Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利 ...

  4. SQL多条件查询安全高效比较

    ALTER PROCEDURE _tmp @ID VARCHAR(50), @PN VARCHAR(50), @Type INT AS BEGIN /************************* ...

  5. OpenstackUbuntu

    1,create user

  6. &lbrack;BZOJ1012&rsqb; &lbrack;JSOI2008&rsqb; 最大数maxnumber &lpar;ST表&rpar;

    Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插 ...

  7. Windows 系统快速查看文件MD5

    关键 ·打开命令窗口(Win+R),然后输入cmd ·输入命令certutil -hashfile 文件绝对路径 MD5 快速获取文件绝对路径 ·找到文件,右键属性 注意 ·在Win7上,MD5不要使 ...

  8. C&num;中dll调用方法

    我不创造方法,只做方法的搬运工. https://www.cnblogs.com/Asuphy/p/4206623.html

  9. GnuPGP介绍

    PGP(Pretty Good Privacy的首字母):PGP公司的加密.签名工具套件,使用了商业版本的IDEA算法,并集成了有商业版权的PGPdisk工具. GnuPG(GNU Privacy G ...

  10. CoordTools

    APPLICATION_VERSION="JTNDYXBwbGljYXRpb24lMjBuYW1lJTIwJTNEJTIwJTIyQ29vcmRUb29sc1BybyUyMiUyMHZlcn ...