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 相关文章推荐
获取URL地址中的文件名和参数的javascript代码
Sep 02 Javascript
JavaScript 对话框和状态栏使用说明
Oct 25 Javascript
jquery $.each() 使用小探
Aug 23 Javascript
js操作label给label赋值及取label的值示例
Nov 07 Javascript
Javascript浅谈之this
Dec 17 Javascript
js+css实现的简单易用兼容好的分页
Dec 30 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
May 12 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 Javascript
深入学习js瀑布流布局
Oct 14 Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 Javascript
JavaScript修改注册表实例代码
Jan 05 Javascript
vue-cli设置publicPath小记
Apr 14 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
基于laravel制作APP接口(API)
2016/03/15 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
对于Python的Django框架部署的一些建议
2015/04/09 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
python3中rank函数的用法
2019/11/27 Python
python 画函数曲线示例
2019/12/04 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
护理专业学生职业生涯规划范文
2014/03/11 职场文书
售后求职信范文
2014/03/15 职场文书
主持词开场白
2014/03/17 职场文书
家长写给孩子的评语
2014/04/18 职场文书
先进个人总结范文
2015/02/15 职场文书
Django REST framework 限流功能的使用
2021/06/24 Python
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android