JavaScript去掉数组重复项的方法分析【测试可用】


Posted in Javascript onJuly 19, 2018

本文实例分析了JavaScript去掉数组重复项的方法。分享给大家供大家参考,具体如下:

利用JavaScript的object的特性,我们可以非常容易的实现将一个数组的重复项去掉。

object的特性是:key一定是唯一的。

把数组重复项去掉:

1 将数组转换成一个object对象,数组的值作为object对象的 key

因为key是唯一的,碰到重复的数组值的时候,object不会添加key

2 将object对象转换成数组,key为数组的值。

在之前的重复数组,每一个值实际上对应object只有一个key,这样在还原到数组的时候,重复值就去掉了

<script>
/*用object的特性去掉数组的重复项:
1 把数组转化成oject对象,用数组的值当作obj的key
2 把object再转换成数组
*/
// 传入数组 返回object对象
var toObj = function( arr ){
  obj = {};
  for(var temp in arr){
    //对arr的每一个值添加到obj的key,value都是true
    obj[arr[temp]] = true;
  }
  return obj;
};
// 传入obj对象 返回arr数组
var toArr = function( obj ){
  var arr = [];
  for(var temp in obj){
    //把所有的key push到数组当中
    arr.push(temp);
  }
  return arr;
};
//把两个方法联合起来
var getUniq = function(arr){
  return toArr( toObj(arr) );
};
var arr = [1,1,2,2,3,3,4,4,5,5,5,6,6,6,6,6,6,5,4,3,54,8,11];
console.log(getUniq(arr));
</script>

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun,运行结果如下:

JavaScript去掉数组重复项的方法分析【测试可用】

Javascript 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
Mar 23 Javascript
javascript笔记 String类replace函数的一些事
Sep 22 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
Aug 09 Javascript
删除条目时弹出的确认对话框
Jun 05 Javascript
javascript实现表单提交后,提交按钮不可用的方法
Apr 18 Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
jQuery中map函数的两种方式
Apr 07 jQuery
JavaScrpt判断一个数是否是质数的实例代码
Jun 11 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 Javascript
微信小程序自定义对话框弹出和隐藏动画
Jul 19 #Javascript
浅谈Vue初学之props的驼峰命名
Jul 19 #Javascript
解决vue-cli3 使用子目录部署问题
Jul 19 #Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 #Javascript
微信小程序实现分享到朋友圈功能
Jul 19 #Javascript
微信小程序实现自定义加载图标功能
Jul 19 #Javascript
Angular5集成eventbus的示例代码
Jul 19 #Javascript
You might like
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
django foreignkey(外键)的实现
2019/07/29 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
优秀社区干部事迹材料
2014/02/03 职场文书
小学运动会加油稿
2015/07/22 职场文书
小学运动会宣传稿
2015/07/23 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
德生2P3收音机开箱评测
2022/04/30 无线电