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的面向对象(一)
Nov 09 Javascript
javascript 异常处理使用总结
Jun 21 Javascript
Ext grid 添加右击菜单
Nov 26 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
浅谈js基本数据类型和typeof
Aug 09 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
Dec 03 Javascript
探索Javascript中this的奥秘
Dec 11 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
Mar 21 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
微信小程序自定义支持图片的弹窗
Dec 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中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
浅析JavaScript异步代码优化
2019/03/18 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
质检的岗位职责
2013/11/17 职场文书
药店主任岗位责任制
2014/02/10 职场文书
婚礼父母答谢词
2015/01/04 职场文书
公证处委托书
2015/01/28 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书