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 相关文章推荐
jQuery textarea的长度进行验证
May 06 Javascript
关于可运行代码无法正常执行的使用说明
May 13 Javascript
纯javascript实现简单下拉刷新功能
Mar 13 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
纯JS实现可拖拽表单的简单实例
Sep 02 Javascript
jquery pagination分页插件使用详解(后台struts2)
Jan 22 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
微信小程序后台持续定位功能使用详解
Aug 23 Javascript
解决Layui中layer报错的问题
Sep 03 Javascript
用JavaScript实现贪吃蛇游戏
Oct 23 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防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
js实现九宫格布局效果
2020/05/28 Javascript
35个Python编程小技巧
2014/04/01 Python
简单介绍Python中的RSS处理
2015/04/13 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
怎样创建、运行java程序
2014/08/01 面试题
财务出纳岗位职责
2014/02/03 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
初中教师业务学习材料
2014/05/12 职场文书
经营理念口号
2014/06/21 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
工程部经理岗位职责
2015/02/02 职场文书
工作简历自我评价
2015/03/11 职场文书
营运督导岗位职责
2015/04/10 职场文书
人民检察院起诉书
2015/05/20 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python