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 相关文章推荐
新手入门常用代码集锦
Jan 11 Javascript
jquery复选框CHECKBOX全选、反选
Aug 30 Javascript
js 用CreateElement动态创建标签示例
Nov 20 Javascript
JS实现将人民币金额转换为大写的示例代码
Feb 13 Javascript
jquery插件splitScren实现页面分屏切换模板特效
Jun 16 Javascript
javascript html实现网页版日历代码
Mar 08 Javascript
Vue.js组件tree实现省市多级联动
Dec 02 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
JS二级菜单不同实现方法分析【4种方法】
Dec 21 Javascript
Vue项目服务器部署之子目录部署方法
May 12 Javascript
深入了解Vue.js 混入(mixins)
Jul 23 Javascript
详解vue 组件的实现原理
Nov 12 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中的一些数组排序方法分享
2012/07/20 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
php数据序列化测试实例详解
2017/08/12 PHP
javascript引用对象的方法
2007/01/11 Javascript
ie focus bug 解决方法
2009/09/03 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
文秘人员工作职责
2014/01/31 职场文书
办公室文员自荐书
2014/02/03 职场文书
求职自我推荐信
2014/06/25 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
安全月宣传标语
2014/10/07 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
党建工作汇报材料
2014/12/24 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
先进个人总结范文
2015/02/15 职场文书
工程款申请报告
2015/05/15 职场文书