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 相关文章推荐
js 匿名调用实现代码
Jun 19 Javascript
javaScript复制功能调用实现方案
Dec 13 Javascript
javascript中基本类型和引用类型的区别分析
May 12 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
Aug 24 Javascript
js+div实现文字滚动和图片切换效果代码
Aug 27 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
Jan 08 Javascript
微信小程序修改checkbox的样式代码实例
Jan 21 Javascript
node.js使用stream模块实现自定义流示例
Feb 13 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 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 年龄计算函数(精确到天)
2012/06/07 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
python设计模式大全
2016/06/27 Python
python的多重继承的理解
2017/08/06 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
ORACLE十问
2015/04/20 面试题
元旦晚会策划方案
2014/02/18 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
2015年财政所工作总结
2015/04/25 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
win sever 2022如何占用操作主机角色
2022/06/25 Servers