详解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下操作css的float属性的特殊写法
Aug 22 Javascript
JavaScript Eval 函数使用
Mar 23 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 Javascript
常用的几段javascript代码分享
Mar 25 Javascript
用box固定长宽实现图片自动轮播js代码
Jun 09 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
Jul 12 Javascript
jQuery查找节点方法完整实例
Sep 13 Javascript
Angularjs中controller的三种写法分享
Sep 21 Javascript
js实现点击按钮弹出上传文件的窗口
Dec 23 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
vue中uni-app 实现小程序登录注册功能
Oct 12 Javascript
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
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下通过POST还是GET来传值
2008/06/05 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php rsa加密解密使用详解
2015/01/14 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
详解JS数值Number类型
2018/02/07 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
Django中对数据查询结果进行排序的方法
2015/07/17 Python
简单实现python爬虫功能
2015/12/31 Python
不要用强制方法杀掉python线程
2017/02/26 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
自行车广告词大全
2014/03/21 职场文书
公司经理聘任书
2014/03/29 职场文书
怎样写离婚协议书
2015/01/26 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js