javasscript学习笔记 之 数组学习二 数组的所有方法
1.push() 和 pop() 栈的方法 后进先出
push() 该方法是向数组末尾添加一个或者多个元素,并返回新的长度。
push()
方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度
POP() 方法刚好和push()
方法相反。pop()
方法删除数组的最后一个元素,把数组的长度减1
,并且返回它被删除元素的值,如果数组变为空,则该方法不改变数组,返回undefine
值
unshift()添加元素 和 shift()删除元素 队列的方法 先进先出
unshift()
方法 是向数组的开头添加一个或多个元素,并且返回新的长度。
shift()
方法 和 unshift()
方法恰恰相反。该方法用于把数组的第一个元素从其中删除,并返回被删除的值。如果数组是空的,shift()
方法将不进行任何操作,返回undefined
的值
简单得回忆一下:
push()
方法可以在数组的末属添加一个或多个元素shift()
方法把数组中的第一个元素删除unshift()
方法可以在数组的前端添加一个或多个元素pop()
方法把数组中的最后一个元素删除
push 和 unshift 的性能测试
Array的push()
与unshift()
方法都能给当前数组添加元素,不同的是,push()
是在末尾添加,而unshift()
则是在开头添加,从原理就可以知道,unshift()
的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来简单测试一下。
下面是 chrome的运行结果
可见,unshift()
比push()
要慢差不多100
倍!因此,平时还是要慎用unshift()
,特别是对大数组。那如果一定要达到unshift()
的效果,可以借助于Array的reverse()
方法,Array的reverse()
的方法能够把一个数组反转。先把要放进数组的元素用push()
添加,再执行一次reverse()
,就达到了unshift()
的效果
且花费时间很少 性能极高。
总结
javasscript学习笔记 之 数组学习二 数组的所有方法的更多相关文章
- python学习笔记——线程threading (二)重写run()方法和守护进程daemon()
1 run()方法 1.1 单个线程 在threading.Thread()类中有run()方法. from time import ctime,sleep import threading # 定义 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader) 代码工 ...
- vue2.0学习笔记之路由(二)路由嵌套+动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue2.0学习笔记之路由(二)路由嵌套
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧
目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...
- 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用
目录 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用 24.1 expect实现无交互登录 24.1.1 安装和使用expect 24.2 正则表达式的使用 24 ...
- 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用
目录 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用 23.1 跳出循环 23.1.1 break和continue 23.2 Shift参数左移指令 23.3 函数 ...
- 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环
目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...
- 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用
目录 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用 21.1 read命令键盘读取变量的值 21.1.1 read常用见用法及参数 21.2 流程控制语句if 21.2 ...
- 学习笔记:CentOS7学习之二十:shell脚本的基础
目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20. ...
随机推荐
- AsyncHttpClient httpURLCon httpClient AsyncTask 访问服务器
Activity /** * 测试使用三种方式(AsyncHttpClient.httpURLCon.httpClient)分别以get和post方式访问服务器 * @author 白乾涛 */ ...
- Linux命令之文件与用户权限
1.文件管理 在Linux里,任何软件和I/O设备都被视为文件.Linux中的文件名最大支持256个字符,分别可以用A-Z.a-z.0-9等字符来命名. 和Windows不同,Linux中文件是区分大 ...
- C#高级编程第1章-.NET体系结构
内容提要: (1)编译和运行面向对象.NET代码 (2)IL/MSIL(Microsoft Intermediate Language)中间语言的优点 (3)值类型与引用类型 (4)数据类型化 (5) ...
- 获取scrollTop兼容各浏览器的方法,以及body和documentElement
1.各浏览器下 scrollTop的差异 IE6/7/8: 对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度 : 对于有do ...
- ORACLE基本SQL语句-查询篇
一.普通查询 /*查询表数据*/select * from STU /*取出前3行数据*/select * from stu where ROWNUM<=3 /*模糊查询*/select * f ...
- php配置文件php.ini 中文版
;;;;;;;;;;;;;;;; 简介 ;;;;;;;;;;;;;;;;; 本文并非是对英文版 php.ini 的简单翻译,而是参考了众多资料以后,结合自己的理解,增加了许多内容,; 包括在原有 ph ...
- JS判断手机端和PC端自动跳转
<script type="text/javascript"> function browserRedirect() { var sUserAgent ...
- (转载)Python装饰器学习
转载出处:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方 ...
- How many ways??(HDU 2157)
How many ways?? Sample Input 4 4 //n个点,m条路径0 1 //s->t可通0 21 32 32 //询问数0 3 2 //从0到3走两条路可到的方案有多少种0 ...
- spring动画-iOS-备
最后停止在终点: 如果给位置移动的动画添加弹簧效果,那么视图的运动轨迹应该像下图中展现的一样: 这会使你的动画看起来更逼真.更真实.更贴近现实.在某些情况下带给用户更好的用户体验.那么让我们开始学习吧 ...