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中sort()方法的用法
Nov 04 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
Mar 18 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
javascript计算星座属相(十二生肖属相)示例代码
Jan 09 Javascript
基于javascript实现动态显示当前系统时间
Jan 28 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
May 19 Javascript
关于javascript的一些知识以及循环详解
Sep 12 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
浅谈Vuex的状态管理(全家桶)
Nov 04 Javascript
Vue路由切换时的左滑和右滑效果示例
May 29 Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
Feb 22 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/01 无线电
收藏的一个php小偷的核心程序
2007/04/09 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
利用php生成验证码
2017/02/23 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
理解Javascript_10_对象模型
2010/10/16 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
输入框过滤非数字的js代码
2014/09/18 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
Python网络爬虫实例讲解
2016/04/28 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
2019/09/23 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
python实现mean-shift聚类算法
2020/06/10 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
迷你西餐厅创业计划书范文
2013/12/31 职场文书
优秀护士先进事迹
2014/05/08 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
个人欠条范本
2015/07/03 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
python Polars库的使用简介
2021/04/21 Python
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP