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 相关文章推荐
javascript中的location用法简单介绍
Mar 07 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
Apr 23 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
高性能JavaScript 重排与重绘(2)
Aug 11 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
Aug 25 Javascript
基于jQuery仿淘宝产品图片放大镜特效
Oct 19 Javascript
karma+webpack搭建vue单元测试环境的方法示例
May 24 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
vue 把二维或多维数组转一维数组
Apr 24 Vue.js
分享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
javascript 小型动画组件与实现代码
2010/06/02 PHP
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
使用php实现截取指定长度
2013/08/06 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
PHP实现简单日历类编写
2020/08/28 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
Python 字典dict使用介绍
2014/11/30 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
类如何去实现接口
2013/12/19 面试题
程序员机试试题汇总
2012/03/07 面试题
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android