详解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 相关文章推荐
统计出现最多的字符次数的js代码
Dec 03 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
May 03 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
jquery遍历select元素(实例讲解)
Dec 31 Javascript
jQuery实现长按按钮触发事件的方法
Feb 02 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
jQuery实现可编辑的表格实例讲解(2)
Sep 17 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
解决使用vue.js路由后失效的问题
Mar 17 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 jQuery
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
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
说明的比较细的php 正则学习实例
2008/07/30 PHP
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
Python调用飞书发送消息的示例
2020/11/10 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
《珍珠泉》教学反思
2014/02/20 职场文书
信息总监管理职责范本
2014/03/08 职场文书
农村文化活动总结
2014/08/28 职场文书
2015年市场部工作总结
2015/04/30 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
jquery插件实现代码雨特效
2021/04/24 jQuery