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 相关文章推荐
Prototype Object对象 学习
Jul 12 Javascript
javascript prototype原型操作笔记
Dec 07 Javascript
jquery实现控制表格行高亮实例
Jun 05 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
Dec 03 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
javascript HTML5 canvas实现打砖块游戏
Jun 18 Javascript
JS图片定时翻滚效果实现方法
Jun 21 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
Apr 28 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
详解小程序如何动态绑定点击的执行方法
Nov 26 Javascript
JavaScript 声明私有变量的两种方式
Feb 05 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
咖啡的化学
2021/03/03 咖啡文化
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
python自动裁剪图像代码分享
2017/11/25 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Django中的静态文件管理过程解析
2019/08/01 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
机电专业大学生求职信
2013/10/04 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
单位实习证明怎么写
2014/01/17 职场文书
喝酒检查书范文
2014/02/23 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电