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 相关文章推荐
js GridView 实现自动计算操作代码
Mar 25 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 Javascript
javascript多种数据类型表格排序代码分析
Sep 11 Javascript
JavaScript中使用arguments获得函数传参个数实例
Aug 27 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
Nov 23 Javascript
AngularJS模板加载用法详解
Nov 04 Javascript
微信小程序实现点击返回顶层的方法
Jul 12 Javascript
js学习总结之dom2级事件基础知识详解
Jul 27 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
Mar 14 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
Apr 17 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
ant design vue导航菜单与路由配置操作
Oct 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
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
MySQL中create table语句的基本语法是
2007/01/15 PHP
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
javascript抖动元素的小例子
2013/10/28 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
JQuery基础语法小结
2015/02/27 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
浅谈js闭包理解
2019/03/28 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
学生爱国演讲稿
2014/01/14 职场文书
银行办理业务介绍信
2014/01/18 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
2014年团支部工作总结
2014/11/17 职场文书