详解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函数map()和each()介绍及异同点分析
Nov 08 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
JavaScript中property和attribute的区别详细介绍
Mar 03 Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
AngularJS实现按钮提示与点击变色效果
Sep 07 Javascript
详解vue.js组件化开发实践
Dec 14 Javascript
详谈commonjs模块与es6模块的区别
Oct 18 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
Sep 13 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
Dec 11 Javascript
vue+element 实现商城主题开发的示例代码
Mar 26 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
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
浅析js中取绝对值的2种方法
2013/07/09 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
详解Python中heapq模块的用法
2016/06/28 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
Python中交换两个元素的实现方法
2018/06/29 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
python如何写出表白程序
2020/06/01 Python
python制作抽奖程序代码详解
2021/01/15 Python
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
双创工作实施方案
2014/03/26 职场文书
求职信怎么写
2014/05/23 职场文书
学校运动会报道稿
2014/09/23 职场文书
临时用工协议书范本
2014/10/29 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
Python合并多张图片成PDF
2021/06/09 Python