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 相关文章推荐
用javascript动态调整iframe高度的代码
Apr 10 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
Sep 01 Javascript
使用node.js 制作网站前台后台
Nov 13 Javascript
对JavaScript客户端应用编程的一些建议
Jun 24 Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
Aug 01 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
Dec 07 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
详解Puppeteer 入门教程
May 09 Javascript
微信小程序如何获取用户头像和昵称
Sep 23 Javascript
微信小程序canvas分享海报功能
Oct 31 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 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 stripslashes和addslashes的区别
2014/02/03 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
php 中的closure用法详解
2017/06/12 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
JS定时器实例
2013/04/17 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
修改node.js默认的npm安装目录实例
2018/05/15 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
深入理解Python中的super()方法
2017/11/20 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
公司经理聘任书
2014/03/29 职场文书
员工离职感谢信
2015/01/22 职场文书
协议书范文
2015/01/27 职场文书
美丽的大脚观后感
2015/06/03 职场文书
消费者投诉书范文
2015/07/02 职场文书
法制教育主题班会
2015/08/13 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
MySQL快速插入一亿测试数据
2021/06/23 MySQL