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报错 Object doesn't support this property or method的原因分析
Mar 31 Javascript
原生js实现查找/添加/删除/指定元素的class
Apr 12 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
Jul 03 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
js实现字符串的16进制编码不加密
Apr 25 Javascript
javascript无刷新评论实现方法
May 13 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
JS匿名函数实例分析
Nov 26 Javascript
JS设计模式之惰性模式(二)
Sep 29 Javascript
vuejs 制作背景淡入淡出切换动画的实例
Sep 01 Javascript
javaScript中indexOf用法技巧
Nov 26 Javascript
如何手动实现一个 JavaScript 模块执行器
Oct 16 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
MySQL修改密码方法总结
2008/03/25 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python切片操作实例分析
2018/03/16 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
Python安装selenium包详细过程
2019/07/23 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
护理自荐信范文
2013/10/05 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python
Python echarts实现数据可视化实例详解
2022/03/03 Python