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 表格操作(交替显示、拖动表格行、选择行等)
Jul 29 Javascript
精通Javascript系列之数据类型 字符串
Jun 08 Javascript
能说明你的Javascript技术很烂的五个原因分析
Oct 28 Javascript
jquery在Chrome下获取图片的长宽问题解决
Mar 20 Javascript
js中cookie的添加、取值、删除示例代码
Oct 21 Javascript
js检测浏览器版本、核心、是否移动端示例
Apr 24 Javascript
JavaScript中定义函数的三种方法
Mar 12 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
Feb 01 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
Oct 30 Javascript
Angular2.js实现表单验证详解
Jun 23 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
JavaScript enum枚举类型定义及使用方法
May 15 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 和 COM
2006/10/09 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
Javascript this指针
2009/07/30 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
React事件处理的机制及原理
2018/12/03 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
Python脚本实现自动发带图的微博
2016/04/27 Python
Python 专题四 文件基础知识
2017/03/20 Python
基于Python List的赋值方法
2018/06/23 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python range实例用法分享
2020/02/06 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
高中的职业生涯规划书
2013/12/28 职场文书
个人查摆剖析材料
2014/02/04 职场文书
秘书英文求职信
2014/04/16 职场文书
法语专业求职信
2014/07/20 职场文书
技术支持岗位职责
2015/02/13 职场文书
2015年暑假生活总结
2015/07/13 职场文书
党校培训学习心得体会
2016/01/06 职场文书
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
深入详解JS函数的柯里化
2021/06/09 Javascript
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server