发现一件事,一个完全由对象组成的数组,用$.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);//看一下组装后的数组

最后的结果:

成功啦,成功喽!!!!

随机推荐

  1. HTML&CSS基础学习笔记1.15-合并单元格

    合并单元格 之前的文章中,我们已经能够创建一个简单地表格了,如果我们需要把横向的某两个相邻单元格<td>或者纵向的某两个相邻单元格<td>合并,我们该怎么做呢?我们要知道的知识 ...

  2. ZooKeeper笔记--集群安装配置 【转】

    ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization).命名服务(Naming S ...

  3. 较优H圈matlab实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang %解决完备图中的较优H圈 clc clear w = [ inf 6 1 8 3 1 ;...   ...

  4. css 画竖着线条

    <p>table控制:<!-- height为横线的粗度,width为长度 --><table width=700>     <tr>    <t ...

  5. 解决“您必须先更新GOOGLE play才能运行此应用”的问题

    可以手机FQ然后更新,但是这样更新速度很慢,而且google商店上面的版本还是老版本. 正确的方法:去https://www.pushbullet.com/channel-popup?tag=am21 ...

  6. ububtu 彻底卸载程序的几种方法

    sudo apt-get purge ......(点点为为程序名称) sudo apt-get autoremove sudo apt-get clean dpkg -l |grep ^rc|awk ...

  7. Oracle 提示密码过期问题:the password will expire

    SQL> conn scott/tiger ERROR: ORA: the password will expire within days Connected. SQL> conn /a ...

  8. Codeforces 219D Choosing Capital for Treeland

    http://codeforces.com/problemset/problem/219/D 题目大意: 给出一棵树,但是它的边是有向边,选择一个城市,问最少调整多少条边的方向能使一个选中城市可以到达 ...

  9. (转) Linux的capability深入分析(2)

    一)capability的工具介绍   在我们的试验环境是RHEL6,libcap-2.16软件包中包含了相关的capability设置及查看工作,如下:   rpm -ql libcap-2.16- ...

  10. 深入浅出 消息队列 ActiveMQ

    http://blog.csdn.net/jwdstef/article/details/17380471