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 select(下拉框)操作方法汇总
Apr 15 Javascript
BootStrap扔进Django里的方法详解
May 13 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
Bootstrap响应式表格详解
May 23 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
Jul 17 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
JS实现随机抽选获奖者
Nov 07 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
JS判断数组四种实现方法详解
Jun 29 Javascript
全面解析JavaScript Module模式
Jul 24 Javascript
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
关于JavaScript轮播图的实现
Nov 20 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弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
javascript实现计算器功能
2020/03/30 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
会计电算化专业应届大学生求职信
2013/10/22 职场文书
英语系毕业生自荐信
2013/10/31 职场文书
大学校务公开实施方案
2014/03/31 职场文书
寄语是什么意思
2014/04/10 职场文书
2014年评职称工作总结
2014/11/20 职场文书
考研经验交流会策划书
2015/11/02 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python