详解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 相关文章推荐
Jquery中Ajax 缓存带来的影响的解决方法
May 19 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
Sep 30 Javascript
JQuery Mobile实现导航栏和页脚
Mar 09 Javascript
Angular2 路由问题修复详解
Mar 01 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
Sep 11 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
vue服务端渲染缓存应用详解
Sep 12 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
Jan 19 Javascript
JS函数基本定义与用法示例
Jan 15 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 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 一个页面执行时间类代码
2010/03/05 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
用javascript实现自定义标签
2007/05/08 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Python之py2exe打包工具详解
2017/06/14 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
python中pyqtgraph知识点总结
2021/01/26 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
博士生入学考试推荐信
2013/11/17 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
具结保证书
2015/01/17 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
行政处罚事先告知书
2015/07/01 职场文书
图解上海144收音机
2021/04/22 无线电