详解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 相关文章推荐
JS执行删除前的判断代码
Feb 18 Javascript
javaScript中slice函数用法实例分析
Jun 08 Javascript
javascript实现网页背景烟花效果的方法
Aug 06 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
浅析Ajax语法
Dec 05 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 Javascript
手淘flexible.js框架使用和源代码讲解小结
Oct 15 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
VUE.js实现动态设置输入框disabled属性
Oct 28 Javascript
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 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 之 没有mysql支持时的替代方案
2006/10/09 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
linux中cd命令使用详解
2015/01/08 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
jquery实现数字输入框
2017/02/22 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python机器学习之决策树算法
2017/12/22 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
少儿节目主持串词
2014/04/02 职场文书
装修施工安全责任书
2014/07/24 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
助学贷款贫困证明
2014/09/23 职场文书
金秋助学感谢信
2015/01/21 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
Python torch.flatten()函数案例详解
2021/08/30 Python
详解Python flask的前后端交互
2022/03/31 Python