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 相关文章推荐
innerHTML 和 getElementsByName 在IE下面的bug 的解决
Apr 09 Javascript
JQuery对checkbox操作 (循环获取)
May 20 Javascript
js异步加载的三种解决方案
Mar 04 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
JavaScript中如何判断一个值的类型
Sep 15 Javascript
JavaScript门道之标准库
May 26 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
Puppeteer环境搭建的详细步骤
Sep 21 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
微信小程序自定义对话框弹出和隐藏动画
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生成自己的LOG文件
2006/10/09 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
javascript 写类方式之一
2009/07/05 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
四年的大学生生活自我评价
2013/12/09 职场文书
年度考核评语
2014/01/19 职场文书
安全检查管理制度
2014/02/02 职场文书
高中物理教学反思
2014/02/08 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
网站创业计划书
2014/04/30 职场文书
2014国庆节标语口号
2014/09/19 职场文书
质检员岗位职责
2015/02/03 职场文书
大学运动会加油稿
2015/07/22 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js