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中对象遍历.eq().first().last().slice()方法
Nov 26 Javascript
jQuery实现类似老虎机滚动抽奖效果
Aug 06 Javascript
浅析AngularJS Filter用法
Dec 28 Javascript
JS组件Form表单验证神器BootstrapValidator
Jan 26 Javascript
Javascript的表单验证长度
Mar 16 Javascript
微信小程序五星评分效果实现代码
Apr 06 Javascript
BootStrap实现文件上传并带有进度条效果
Sep 11 Javascript
关于HTML5的data-*自定义属性的总结
May 05 Javascript
深入浅出vue图片路径的实现
Sep 04 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
jQuery实现容器间的元素拖拽功能
Dec 01 jQuery
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
微信小程序自定义对话框弹出和隐藏动画
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 文件上传系统手记
2009/10/26 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Python脚本实现下载合并SAE日志
2015/02/10 Python
Python正则简单实例分析
2017/03/21 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
python如何爬取动态网站
2020/09/09 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
Android面试题及答案
2015/09/04 面试题
会计电算化个人求职信范文
2014/01/24 职场文书
市场营销方案范文
2014/03/11 职场文书
中学语文教学反思
2016/02/16 职场文书