详解JavaScript数组和字符串中去除重复值的方法


Posted in Javascript onMarch 07, 2016

原理在代码中表现得非常清晰,我们直接来看代码例子:

var ages = array.map(function(obj) { return obj.age; }); 
ages = ages.filter(function(v,i) { return ages.indexOf(v) == i; }); 
 
console.log(ages); //=> [17, 35]
function isBigEnough(element) { 
 return element >= 10; 
} 
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); 
// filtered is [12, 130, 44]
function onlyUnique(value, index, self) {  
  return self.indexOf(value) === index; 
} 
 
// usage example: 
var a = ['a', 1, 'a', 2, '1']; 
var unique = a.filter( onlyUnique ); // returns ['a', 1, 2, '1']

比较好使的Function(不兼容IE7)

function unique(array){ 
  return array.filter(function(el, index, arr) { 
    return index == arr.indexOf(el); 
  }); 
}

 
比较好使的Function(兼容IE7)

//去除数组中重复值 
function getNoRepeat(s) { 
  return s.sort().join(",,").replace(/(,|^)([^,]+)(,,\2)+(,|$)/g,"$1$2$4").replace(/,,+/g,",").replace(/,$/,"").split(","); 
} 
 
var arr = ["北京", "上海", "天津", "武汉", "上海", "天津", "武汉", "北京", "上海", "天津", "武汉", "天津", "武汉", "天津", "武汉", "天津", "武汉", 
"北京", "上海", "天津", "武汉", "上海", "天津", "武汉", "北京", "上海", "天津", "武汉", "天津", "武汉", "天津", "武汉", "天津", "武汉", 
"北京", "上海", "天津", "武汉", "上海", "天津", "武汉", "北京", "上海", "天津", "武汉", "天津", "武汉", "天津", "武汉", "天津", "武汉"]; 
arr = getNoRepeat(arr); 
 
alert(arr.length);// 4 
alert(arr.toString()); // "北京", "上海", "天津", "武汉"

利用map原理

var arr = ["北京", "上海", "天津", "武汉", "上海", "天津", "武汉", "北京", "上海", "天津", "武汉", "天津", "武汉", "天津", "武汉", "天津", "武汉", 
"北京", "上海", "天津", "武汉", "上海", "天津", "武汉", "北京", "上海", "天津", "武汉", "天津", "武汉", "天津", "武汉", "天津", "武汉", 
"北京", "上海", "天津", "武汉", "上海", "天津", "武汉", "北京", "上海", "天津", "武汉", "天津", "武汉", "天津", "武汉", "天津", "武汉"]; 
 
var json = {}; 
for(var i = 0; i < arr.length; i++){ 
  json[arr[i]] = arr[i]; 
} 
 
arr = new Array(); 
for(var key in json){ 
  arr.push(key); 
} 
alert(arr.toString()); 
// "北京", "上海", "天津", "武汉"
Javascript 相关文章推荐
javascript iframe内的函数调用实现方法
Jul 19 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
Sep 02 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
Oct 22 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
Nov 09 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
js获取html的span标签的值方法(超简单)
Jul 26 Javascript
vue.js动态数据绑定学习笔记
May 19 Javascript
javascript 数据存储的常用函数总结
Jun 01 Javascript
详解vue-cli 构建Vue项目遇到的坑
Aug 30 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
Apr 01 jQuery
Vue获取微博授权URL代码实例
Nov 04 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
Mar 07 #Javascript
JavaScript中将数组进行合并的基本方法讲解
Mar 07 #Javascript
Bootstrap每天必学之日期控制
Mar 07 #Javascript
JavaScript过滤字符串中的中文与空格方法汇总
Mar 07 #Javascript
jquery+json实现分页效果
Mar 07 #Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 #Javascript
基于jquery编写分页插件
Mar 07 #Javascript
You might like
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
javascript new fun的执行过程
2010/08/05 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
关于Python 3中print函数的换行详解
2017/08/08 Python
Python安装selenium包详细过程
2019/07/23 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书