文档章节

js 数组去重方法总结

码上有春天
 码上有春天
发布于 2015/11/17 18:20
字数 152
阅读 27
收藏 2

方法一:用到js内置的indexOf方法

Array.prototype.unique = function(){
    var result = [];
    for(var i=0,ci;ci=this[i++];){
        if(result.indexOf(ci) == -1) result.push(ci);
    }
}

方法二:用到hash表,要求数组元素值只能为字符

Array.prototype.unique=function(){
	for(var i=0,temp={},result=[],ci;ci=this[i++];){
		if(temp[ci])continue;
		temp[ci]=1;
		result.push(ci);
	}
	return result;
}

方法二中的hash查找比indexOf方法遍历数组快的多,但应用场景有限

方法三:用sort先对数组元素排序

Array.prototype.unique = function(){
    this.sort();
    var result = [], end = 0;
    result.push(this[0]);
    for(var i=0,ci;ci=this[i++];){
        if(ci != result[end]){
            result.push(ci);
            end++;
        }
    }
    return result;
}




© 著作权归作者所有

码上有春天
粉丝 5
博文 82
码字总数 55985
作品 0
广州
程序员
私信 提问
好程序员web前端培训之JavaScript数组去重方法

好程序员web前端之JavaScript数组去重方法,一周学习结束,老师布置我们要写一篇技术文章,脑袋里面的第一个想法就是数组去重,在网上也百度了一下,很多公司面试的时候有很大的几率会问数组...

好程序员IT
03/29
15
0
重学Javascript之引用类型

注意: 本文章为 《重学js之JavaScript高级程序设计》系列第五章【JavaScript引用类型】。 关于《重学js之JavaScript高级程序设计》是重新回顾js基础的学习。 引用类型的值(对象)是引用类型...

故事胶片
08/28
0
0
让你瞬间提高工作效率的常用js函数汇总(持续更新)

前言 本文总结了项目开发过程中常用的js函数和正则,意在提高大家平时的开发效率,具体内容如下: 常用的正则校验 常用的设备检测方式 常用的日期时间函数 跨端事件处理 js移动端适配方案 xs...

徐小夕
07/02
0
0
JavaScript基础学习总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/fengxinlinux/article/details/96162470 文章目录 document.getElem...

Rotation.
07/16
0
0
ES6入门之Set 和 Map

1. Set 1.1 基本用法 Set 类似于数组,但是成员的 值都是唯一的,没用重复的值。Set本身是一个构造函数,用来生成Set数据结构。 Set 函数可以接受一个数组(或具有 iterable 接口的其他数据结...

故事胶片
08/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大厂面试经:高频率JVM面试问题整理!

JVM(Java虚拟机)简单来说就是运行Java代码的解释器,作为螺丝钉程序员JVM其实了解下就差不多啦,不懂JVM内部细节照样能写出优质的代码!但是一到造火箭、飞机的场景(面试)不懂JVM的你,会...

架构文摘
26分钟前
7
0
thinkphp5.1学习过程五——request

<?phpnamespace app\index\controller;//use \think\facade\Request;use \think\Request;/** * Class Demo3 * @package app\index\controller * 正常情况下,控制器不依赖......

大海yht
36分钟前
6
0
DB2 sequence 操作

操作DB2 下 sequence seqName db2数据库一般seq还是比较大的,但是程序在调用的时候还是不可避免的有一些bug, 下面是对于seq一些简单的操作,也作为工作的一些记录 1、命令行取sequence se...

飞雪无痕
今天
7
0
《吊打面试官》系列-秒杀系统设计

你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 絮叨 之前写了很多Redis相关的知识...

敖丙
今天
15
0
Qt编写气体安全管理系统11-数据打印

一、前言 在各种软件系统中,数据打印也是常用的功能之一,一般来说会对查询的数据结果导出到excel,还会对查询的数据结果直接打印,在Qt中提供了打印机类QPrinter,在printsupport组件中,可...

飞扬青云
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部