详解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 Excel操作知识点
Apr 24 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
Jul 29 Javascript
JS 获取滚动条高度示例代码
Oct 24 Javascript
原生的html元素选择器类似jquery选择器
Oct 15 Javascript
JavaScript中用字面量创建对象介绍
Dec 31 Javascript
js判断一个字符串是以某个字符串开头的简单实例
Dec 27 Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 Javascript
基于canvas粒子系统的构建详解
Aug 31 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 Javascript
在vue中axios设置timeout超时的操作
Sep 04 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
zookeeper python接口实例详解
2018/01/18 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
Python字节单位转换实例
2019/12/05 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
信息管理员岗位职责
2013/12/01 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
消防标语大全
2014/06/07 职场文书
励志演讲稿500字
2014/08/21 职场文书
收款授权委托书
2014/10/02 职场文书
客房服务员岗位职责
2015/02/09 职场文书
新闻报道稿范文
2015/07/23 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP