JS数组去掉重复数据只保留一条的实现代码


Posted in Javascript onAugust 11, 2016

非常不多说,js数组去掉重复数据的代码如下所示:

var arr = [1,2,3,4,5,6,1,6,7,2];
var newArr = [];
for(var i =0;i<arr.length-1;i++){
 if(newArr.indexOf(arr[i]) == -1){


newArr.push(arr[i]);

}
}

JS数组去掉重复数据只保留一条的实现代码

下面再给大家分享高效率去掉js数组中重复项

Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法:

function unique(arr) {
var result = [], isRepeated;
for (var i = 0, len = arr.length; i < len; i++) {
isRepeated = false;
for (var j = 0, len = result.length; j < len; j++) {
if (arr[i] == result[j]) { 
isRepeated = true;
break;
}
}
if (!isRepeated) {
result.push(arr[i]);
}
}
return result;
}

总体思路是把数组元素逐个搬运到另一个数组,搬运的过程中检查这个元素是否有重复,如果有就直接丢掉。从嵌套循环就可以看出,这种方法效率极低。我们可以 用一个hashtable的结构记录已有的元素,这样就可以避免内层循环。恰好,在Javascript中实现hashtable是极为简单的,改进如 下:

function unique(arr) {
var result = [], hash = {};
for (var i = 0, elem; (elem = arr[i]) != null; i++) {
if (!hash[elem]) {
result.push(elem);
hash[elem] = true;
}
}
return result;
//http://www.cnblogs.com/sosoft/
}

以上所述是小编给大家介绍的JS数组去掉重复数据只保留一条的实现代码 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js利用Array.splice实现Array的insert/remove
Jan 13 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
Feb 19 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
vue引入jq插件的实例讲解
Sep 12 Javascript
微信小程序使用Socket的实例
Sep 19 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
vue.js获得当前元素的文字信息方法
Mar 09 Javascript
vue中的provide/inject的学习使用
May 09 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
Node.js之删除文件夹(含递归删除)代码实例
Sep 09 Javascript
分享JS数组求和与求最大值的方法
Aug 11 #Javascript
利用JavaScript阻止表单提交的两种方法
Aug 11 #Javascript
防止Node.js中错误导致进程阻塞的办法
Aug 11 #Javascript
JavaScript中 ES6 generator数据类型详解
Aug 11 #Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
Aug 11 #Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
Aug 11 #Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
Aug 11 #Javascript
You might like
PHP中的CMS的涵义
2007/03/11 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
react路由配置方式详解
2017/08/07 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
python实现字符串和字典的转换
2018/09/29 Python
Python2与Python3的区别实例分析
2019/04/11 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
代理商会议邀请函
2014/01/27 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
工程承诺书怎么写
2014/05/24 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
护士辞职信怎么写
2015/02/27 职场文书
2015年社会实践个人总结
2015/03/06 职场文书