详解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 相关文章推荐
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 Javascript
ToolTips JQEURY插件之简洁小提示框效果
Nov 19 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 Javascript
js给页面加style无效果的解决方法
Jan 20 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
基于豆瓣API+Angular开发的web App
Jan 02 Javascript
JavaScript页面模板库handlebars的简单用法
Mar 02 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
Dec 07 Javascript
JS两种类型的表单提交方法实例分析
Nov 28 Javascript
vue.js指令v-model实现方法
Dec 05 Javascript
VueJs与ReactJS和AngularJS的异同点
Dec 12 Javascript
详解jQuery如何实现模糊搜索
May 10 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脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
详谈js模块化规范
2017/07/07 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
Python Matplotlib库入门指南
2015/05/18 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
工业自动化毕业生自荐信范文
2014/01/04 职场文书
技校个人求职信范文
2014/01/25 职场文书
需求分析说明书
2014/05/09 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
财务年终工作总结大全
2019/06/20 职场文书