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模拟点击以提交表单为例兼容主流浏览器
Nov 29 Javascript
购物车选中得到价格实现示例
Jan 26 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
Jun 05 Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 Javascript
node.js中的path.delimiter方法使用说明
Dec 09 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
Sep 26 Javascript
vue使用echarts图表的详细方法
Oct 22 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
Nov 26 Javascript
解决layui table表单提示数据接口请求异常的问题
Sep 24 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
js实现简单进度条效果
Mar 25 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
mysql 性能的检查和优化方法
2009/06/21 PHP
PHP parse_url 一个好用的函数
2009/10/03 PHP
PHP 数组基础知识小结
2010/08/20 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
js history对象简单实现返回和前进
2013/10/30 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
js实现二级导航功能
2017/03/03 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
javaScript实现游戏倒计时功能
2018/11/17 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
Python高级property属性用法实例分析
2019/11/19 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
计算机专业毕业生求职信分享
2013/12/24 职场文书
办公室经理岗位职责
2014/01/01 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
初中政治教学工作总结
2015/08/13 职场文书
2015年美容师个人工作总结
2015/10/14 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
使用JS实现简易计算器
2021/06/14 Javascript
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers