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 相关文章推荐
关于flash遮盖div浮动层的解决方法
Jul 17 Javascript
jQuery前台数据获取实现代码
Mar 16 Javascript
JavaScript实现自己的DOM选择器原理及代码
Mar 04 Javascript
jQuery渐变发光导航菜单的实例代码
Mar 27 Javascript
js获取键盘按键响应事件(兼容各浏览器)
May 16 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
Apr 02 Javascript
JavaScript基本数据类型及值类型和引用类型
Aug 25 Javascript
JavaScript判断按钮被点击的方法
Dec 13 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
Aug 01 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 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
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
PHP实现简单登录界面
2019/10/23 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
js表数据排序 sort table data
2009/02/18 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
python将回车作为输入内容的实例
2018/06/23 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python读取指定字节长度的文本方法
2019/08/27 Python
python做接口测试的必要性
2019/11/20 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
党委干部批评与自我批评发言稿
2014/09/28 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
个人优缺点总结
2015/02/28 职场文书
导师工作推荐信
2015/03/27 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
我去timi了,一起去timi是什么意思?
2022/04/13 杂记