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中取得变量绝对值的方法
Jan 03 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
不想让浏览器运行javascript脚本的方法
Nov 20 Javascript
jQuery实现动态删除LI的方法
May 30 jQuery
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
Nov 25 Javascript
生产制造追溯系统之在线打印功能
Jun 03 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
layui 地区三级联动 form select 渲染的实例
Sep 27 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
Aug 28 Javascript
微信小程序实现签到弹窗动画
Sep 21 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 Vue.js
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
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
JavaScript中number转换成string介绍
2014/12/31 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
从零学Python之hello world
2014/05/21 Python
跟老齐学Python之重回函数
2014/10/10 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
shell程序中如何注释
2012/01/28 面试题
高一物理教学反思
2014/01/24 职场文书
应用心理学专业求职信
2014/08/04 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
事业单位年度考核评语
2014/12/31 职场文书
后勤工作个人总结
2015/02/28 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
公司员工手册范本
2015/05/14 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
公司晚会主持词
2019/04/17 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python