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 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
jQuery中文入门指南,翻译加实例,jQuery的起点教程
Feb 09 Javascript
pjblog中的UBBCode.js
Apr 25 Javascript
javascript学习(一)构建自己的JS库
Jan 02 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
Angular 根据 service 的状态更新 directive
Apr 03 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
完美解决linux下node.js全局模块找不到的情况
May 16 Javascript
vue.js与后台数据交互的实例讲解
Aug 08 Javascript
vue实现评价星星功能
Jun 30 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
批处理与python代码混合编程的方法
2016/05/19 Python
python实现简单中文词频统计示例
2017/11/08 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
规划编制实施方案
2014/03/15 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
高中运动会广播稿
2014/09/16 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
老乡聚会通知
2015/04/23 职场文书
2015年手术室工作总结
2015/05/11 职场文书
2019同学聚会主持词
2019/05/06 职场文书