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 相关文章推荐
JavaScript Accessor实现说明
Dec 06 Javascript
最佳的addEvent事件绑定是怎样诞生的
Oct 24 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 Javascript
JavaScript前端开发之实现二进制读写操作
Nov 04 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
深入理解vue中slot与slot-scope的具体使用
Jan 26 Javascript
通过实践编写优雅的JavaScript代码
May 30 Javascript
通过实例讲解JS如何防抖动
Jun 15 Javascript
微信小程序引入Vant组件库过程解析
Aug 06 Javascript
在antd Form表单中select设置初始值操作
Nov 02 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
Apr 09 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 和 HTML
2006/10/09 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
python算法学习之计数排序实例
2013/12/18 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
Python线程同步的实现代码
2018/10/03 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
德国网上宠物店:Zoobio
2018/05/23 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
销售人员自我评价
2014/02/01 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
检讨书格式范文
2015/05/07 职场文书
校运会新闻稿
2015/07/17 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书