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 相关文章推荐
20款超赞的jQuery插件 Web开发人员必备
Feb 26 Javascript
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 Javascript
javascript判断变量是否有值的方法
Apr 20 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
Vue项目中引入外部文件的方法(css、js、less)
Jul 24 Javascript
原生js实现仿window10系统日历效果的实例
Oct 31 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
Dec 01 Javascript
vue store之状态管理模式的详细介绍
Jun 13 Javascript
JavaScript 类的封装操作示例详解
May 16 Javascript
解决Vue项目中tff报错的问题
Oct 21 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
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
Python中List.index()方法的使用教程
2015/05/20 Python
Python中的with...as用法介绍
2015/05/28 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
python 中的int()函数怎么用
2017/10/17 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
python中的yield from语法快速学习
2020/11/06 Python
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
Linux机考试题
2015/07/17 面试题
初中英语演讲稿
2014/04/29 职场文书
校园安全标语
2014/06/07 职场文书
十佳党员事迹材料
2014/08/28 职场文书
初二数学教学反思
2016/02/17 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技