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 相关文章推荐
jQuery+css实现的换页标签栏效果
Jan 27 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
通过sails和阿里大于实现短信验证
Jan 04 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
Sep 22 Javascript
Vue SPA单页应用首屏优化实践
Jun 28 Javascript
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
vue 中使用 watch 出现了如下的报错的原因分析
May 21 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
刷新页面后让控制台的js代码继续执行
Sep 20 Javascript
vue resource发送请求的几种方式
Sep 30 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
微信小程序button标签open-type属性原理解析
Jan 21 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中执行系统外部命令
2006/10/09 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
Js sort排序使用方法
2011/10/17 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
wxPython框架类和面板类的使用实例
2014/09/28 Python
简单了解什么是神经网络
2017/12/23 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
大学生开西餐厅创业计划书
2014/02/01 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
十周年庆典策划方案
2014/06/03 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python