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 相关文章推荐
需要做特殊处理的DOM元素属性的访问
Nov 05 Javascript
最佳的addEvent事件绑定是怎样诞生的
Oct 24 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
Jun 25 Javascript
使用JavaScript获取Request中参数的值方法
Sep 27 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
基于JavaScript实现多级菜单效果
Jul 25 Javascript
ReactNative Image组件使用详解
Aug 07 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
一步步教你利用Docker设置Node.js
Nov 20 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
VFP与其他应用程序的集成
2006/10/09 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
js实现点击烟花特效
2020/10/14 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
Python使用Scrapy爬取妹子图
2015/05/28 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Mac安装python3的方法步骤
2019/08/09 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
物业管理计划书
2014/01/10 职场文书
小学庆六一活动方案
2014/02/28 职场文书
司机职责范本
2014/03/08 职场文书
机关作风建设自查报告
2014/10/22 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
硕士论文致谢范文
2015/05/14 职场文书