详解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中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
基于jquery的direction图片渐变动画效果
May 24 Javascript
jquery $(document).ready()和window.onload的区别浅析
Feb 04 Javascript
js实现拉幕效果的广告代码
Sep 02 Javascript
js格式化时间的方法
Dec 18 Javascript
jQuery实现本地预览上传图片功能
Jan 08 Javascript
超全面的JavaScript开发规范(推荐)
Jan 21 Javascript
react.js组件实现拖拽复制和可排序的示例代码
Aug 20 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
Feb 21 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
js实现点击烟花特效
Oct 14 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
小偷PHP+Html+缓存
2006/11/25 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
python plotly画柱状图代码实例
2019/12/13 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
小学教师自我鉴定
2013/11/07 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
方法汇总:Python 安装第三方库常用
2022/04/26 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers