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计算在UTF-8下存储字符串占用字节数
Aug 08 Javascript
JS+CSS实现六级网站导航主菜单效果
Sep 28 Javascript
分享网页检测摇一摇实例代码
Jan 14 Javascript
JavaScript实现相册弹窗功能(zepto.js)
Jun 21 Javascript
jQuery实现CheckBox全选、全不选功能
Jan 11 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
JS实现星星海特效
Dec 24 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 Javascript
JavaScript实现4位随机验证码的生成
Jan 28 Javascript
vue3.0 项目搭建和使用流程
Mar 04 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
德生1994机评
2021/03/02 无线电
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
python实现机器学习之多元线性回归
2018/09/06 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
开放系统互连参考模型
2016/06/29 面试题
中科创达面试题
2016/12/28 面试题
经济信息系毕业生自荐信范文
2014/03/15 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
信息工作经验交流材料
2014/05/28 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
2014年信用社工作总结
2014/11/25 职场文书
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android