JavaScript基于对象去除数组重复项的方法


Posted in Javascript onOctober 09, 2016

本文实例讲述了JavaScript基于对象去除数组重复项的方法。分享给大家供大家参考,具体如下:

JavaScript中,去除数组重复项是一个很常用的函数,而且在面试中也很经常被提问到.很多人在面对这个问题的时候,一般都是采用多层for循环来一步一步的比较,然后删除,那样不仅代码量很多,而且性能也很不好.在JavaScript的对象中,有一个特性就是key永远不重复,如果重复后面的就会覆盖前面的.

三个步骤:

1# 把数组转换成js对象
2# 把数组值变成js对象中的key
3# 把对象还原成数组

var toObject = function(arr){
    var obj = new Object(); //私有对象
    var j = arr.length;
    for(var i=0; i < j; +i+){
        obj[arr[i]] = true;
    }
    return obj;
}
var keys = function(obj){
    var arr = [];
    for(var attr in obj){
        if(obj.hasOwnPerpoty(attr)){
            arr.push(attr);
        }
    }
    return arr;
}
var uniq = function(arr){ //去除重复项
    return keys(toObject(newarr));
}

在使用的使用,把数组传递到uniq函数里面即可,这个方法使用了JavaScript对象特性,非常的高效简洁,也是雅虎YUI的底层实现.

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
客户端静态页面玩分页
Jun 26 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
js document.write()使用介绍
Feb 21 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 Javascript
浅谈pc端rem字体设置的问题
Aug 03 Javascript
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
angularjs性能优化的方法
Sep 05 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
Feb 26 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
May 28 Javascript
JS中this上下文对象使用方式
Oct 09 #Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
Oct 09 #Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
Oct 09 #Javascript
BootStrap中Table分页插件使用详解
Oct 09 #Javascript
微信小程序 for 循环详解
Oct 09 #Javascript
微信小程序 条件渲染详解
Oct 09 #Javascript
手机浏览器 后退按钮强制刷新页面方法总结
Oct 09 #Javascript
You might like
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
关于尾递归的使用详解
2013/05/02 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
asp.net和php的区别点总结
2019/10/10 PHP
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
python之yield表达式学习
2014/09/02 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
python tkinter实现连连看游戏
2020/11/16 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
大学生个人简历自我评价
2013/11/16 职场文书
ktv中秋节活动方案
2014/01/30 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
班主任自我评价范文
2015/03/11 职场文书
监护人证明
2015/06/19 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
python 判断文件或文件夹是否存在
2022/03/18 Python
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS