ES5-Array-push(),pop(),shift(),unshift()

news/2024/7/5 2:35:25

参考文章:push(),pop()

  • push方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度
    注意,该方法会改变原数组,而不是创建一个新的数组。
var arr = [];arr.push(1) // 1
arr.push('a') // 2
arr.push(true, {}) // 4
arr // [1, 'a', true, {}]
复制代码

上面代码使用push方法,往数组中添加了四个成员。

  • pop方法用于删除数组的最后一个元素,并返回该元素。
    注意,该方法会改变原数组。pop()没有参数。
var arr = ['a', 'b', 'c'];arr.pop() // 'c'
arr // ['a', 'b']
复制代码

空数组使用pop方法,不会报错,而是返回undefined。

[].pop() // undefined
复制代码
  • push和pop结合使用,就构成了“后进先出”的栈结构(stack)。
var arr = [];
arr.push(1, 2);
arr.push(3);
arr.pop();
arr // [1, 2]
复制代码

上面代码中,3是最后进入数组的,但是最早离开数组。

  • shift()方法用于删除数组的第一个元素,并返回该元素。
    注意,该方法会改变原数组。shift()没有参数。
var a = ['a', 'b', 'c'];a.shift() // 'a'
a // ['b', 'c']
复制代码

上面代码中,使用shift()方法以后,原数组就变了。

shift()方法可以遍历并清空一个数组。

var list = [1, 2, 3, 4];
var item;
//while只要指定条件为 true,循环就可以一直执行。
while (item = list.shift()) {//给item赋值console.log(item);
}list // []
复制代码

上面代码通过list.shift()方法每次取出一个元素,从而遍历数组。
它的前提是数组元素不能是0或任何布尔值等于false的元素,因此这样的遍历不可靠

  • unshift()方法用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。
    注意,该方法会改变原数组。
var a = ['a', 'b', 'c'];a.unshift('x'); // 4
a // ['x', 'a', 'b', 'c']
复制代码

unshift()方法可以接受多个参数,这些参数都会添加到目标数组头部。

var arr = [ 'c', 'd' ];
arr.unshift('a', 'b') // 4
arr // [ 'a', 'b', 'c', 'd' ]
复制代码

http://lihuaxi.xjx100.cn/news/235826.html

相关文章

2021年中国工业互联网安全大赛核能行业赛道writeup之usb流量分析

目录 一、USB协议 二、键盘流量 三、鼠标流量 四、writeup 附件题:usb流量分析 题目描述: 具体描述忘记了o(╯□╰)o 大概意思是有个U盘插到电脑上,然后经过一些操作导致该电脑重启了。找到这个过程中的flag。 附件下载: 20…

007-迅雷定时重启AutoHotkey脚本-20190411

;; 定时重启迅雷.ahk,;;~ 2019年04月11日;#SingleInstance,forceSetWorkingDir,%A_ScriptDir%DetectHiddenWindows,OnSetTitleMatchMode,2#Persistent ;让脚本持久运行(即直到用户关闭或遇到 ExitApp)。#NoEnv;~ #NoTrayIcon Hotkey,^F10,ExitThisApp lo…

2021年中国工业互联网安全大赛核能行业赛道writeup之入门的黑客

附件题:入门的黑客 题目描述: 在某次工控攻防演练中,防守方使用蜜罐捕捉到了某黑客在入侵时留下的恶意程序样本,现在要对该黑客进行画像,需要从该恶意程序中分析出反连时的IP和端口信息,看看聪明的你能否能…

eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析 ...

Guide: eBCC性能分析最佳实践(0) - 开启性能分析新篇章eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析eBCC性能分析最佳实践(2) - 一个简单的eBCC分析网络函数的latency敬请期待...0. I…

11.CCNA第十一天-配置OSPF/EIGRP(增强型内部网关协议)

配置OSPFBranch(config)#router ospf ?<1-65535> Process ID通配符掩码在IGP协议中&#xff0c;以连续的0和连续的1组成有一种不科学的称呼&#xff08;反掩码&#xff09;Branch#show running-config | section router ospfrouter ospf 10network 10.1.0.0 0.0.255.25…

Python脱产8期 Day02

一 语言分类 机器语言&#xff0c;汇编语言&#xff0c;高级语言&#xff08;编译和解释&#xff09; 二 环境变量 1、配置环境变量不是必须的2、配置环境变量的目的&#xff1a;为终端提供执行环境 三Python代码执行的方式 1交互式&#xff1a;.控制台直接编写运行python代码 …

MySQL02-升级

MySQL 版本号由三个数字和可选后缀组成&#xff0c;形式 mysql-x.y.z-suffix。比如 mysql-5.7.21 或者 mysql-5.7.34。 x(5)这位是大版本y(7)这位是小版本&#xff0c;大版本小版本组合成 5.7 就是一个发行版最后一位是bugfix release版本&#xff0c;从1逐渐增加&#xff0c;…

小米:开源不仅要站在巨人的肩膀上,还要为巨人指方向

今天上午&#xff0c;第一届小米开源技术峰会在北京举行&#xff0c;会上&#xff0c;小米人工智能与云平台副总裁崔宝秋致开场词&#xff0c;并发表了《小米开源之路》的演讲。 崔宝秋强调小米一直在推动开源&#xff0c;也是开源的倡导者。他告诉我们雷军创立小米的其中一个重…