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 相关文章推荐
jquery插件制作 自增长输入框实现代码
Aug 17 jQuery
JavaScript NaN和Infinity特殊值 [译]
Sep 20 Javascript
jquery 动态创建元素的方式介绍及应用
Apr 21 Javascript
js中数组(Array)的排序(sort)注意事项说明
Jan 24 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
JS实现元素上下左右移动效果
Oct 18 Javascript
vue watch监听对象及对应值的变化详解
Feb 24 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
Jun 21 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
Feb 28 Javascript
js+css3实现简单时钟特效
Sep 13 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
javascript 一些用法小结
2009/09/11 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
Python决策树分类算法学习
2017/12/22 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
戴森英国官网:Dyson英国
2019/05/07 全球购物
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
应付会计岗位职责
2013/12/12 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
列车长先进事迹材料
2014/01/25 职场文书
法律进社区实施方案
2014/03/21 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
北京青年观后感
2015/06/15 职场文书
公司开业主持词
2015/07/02 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android