详解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 相关文章推荐
xml转json的js代码
Aug 28 Javascript
jQuery判断checkbox是否选中的3种方法
Aug 12 Javascript
浅谈javascript的Array.prototype.slice.call
Aug 31 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
vue webuploader 文件上传组件开发
Sep 23 Javascript
详解node.js 下载图片的 2 种方式
Mar 02 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
Aug 10 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
Dec 30 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
Sep 21 Javascript
JavaScript展开操作符(Spread operator)详解
Jul 20 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
Oct 21 Javascript
如何解决jQuery 和其他JS库的冲突
Jun 22 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
PHPlet在Windows下的安装
2006/10/09 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
PHP如何将XML转成数组
2016/04/04 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
一行代码告别document.getElementById
2012/06/01 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
Python中的引用和拷贝浅析
2014/11/22 Python
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
Python tkinter事件高级用法实例
2018/01/31 Python
Python 支持向量机分类器的实现
2020/01/15 Python
python 实现字符串下标的输出功能
2020/02/13 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
什么是.net
2015/08/03 面试题
经贸专业毕业生求职信
2014/03/23 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
前端JavaScript大管家 package.json
2021/11/02 Javascript
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python