目录

push() 末尾添加元素

unshift() 首部添加元素

shift / pop 方法删除数组首/尾元素

filter() 方法过滤元素

map() 方法处理元素


push() 末尾添加元素

1、push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。新元素将添加在数组的末尾, 此方法改变原数组的长度。

2、语法:array.push(item1, item2, ..., itemX)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"><title>数组测试</title><script>/*** 为数组 arr1 在末尾逐个添加元素* @type {string[]}*/let arr1 = ["A", "B", "C"];for (let i = 0; i < 5; i++) {let arr1Length = arr1.push(i);console.log("arr1=" + arr1.toString(), "数组长度:" + arr1Length);}console.log("---------------1--------------------");/*** 为数组 arr2 中的元素前后调换顺序* @type {number[]}*/let arr2 = [1, 2, 3, 4, 5];console.log("原数组 arr2=" + arr2.toString());let arr2_2 = [];while (arr2.length > 0) {/**删除原数组末尾的元素,然后添加到新数组末尾*/let delPop = arr2.pop();arr2_2.push(delPop);}console.log("调换顺序后 arr2_2=" + arr2_2.toString());console.log("---------------2--------------------");let arr3 = ["A", "B", "C"];/**可以为数组同时添加多个元素*/let size = arr3.push(1, 2, 3);console.log(arr3.toLocaleString(), "数组大小:" + size);/**数组中的元素可以是任意类型,如对象,数组,JSON 等*/size = arr3.push({"name": "华安", "age": 35});console.log(arr3.toLocaleString(), "数组大小:" + size, "最后一个元素:" + JSON.stringify(arr3[size - 1]));</script>
</head>
<body>
</body>
</html>

unshift() 首部添加元素

1、unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。该方法将改变原数组的数目。

2、所有主要浏览器都支持 unshift()方法,Internet Explorer 8 及更早IE版本不支持,返回 undefined

3、语法:array.unshift(item1,item2, ..., itemX)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"><title>数组测试</title><script>/*** 为数组 arr1 在首部逐个添加元素* @type {string[]}*/let arr1 = ["A", "B", "C"];for (let i = 0; i < 5; i++) {let arr1Length = arr1.unshift(i);console.log("arr1=" + arr1.toString(), "数组长度:" + arr1Length);}console.log("---------------1--------------------");/*** 为数组 arr2 中的元素前后调换顺序* @type {number[]}*/let arr2 = [1, 2, 3, 4, 5];console.log("原数组 arr2=" + arr2.toString());let arr2_2 = [];while (arr2.length > 0) {/**删除原数组第一个元素,然后添加到新数组首部*/let delPop = arr2.shift();arr2_2.unshift(delPop);}console.log("调换顺序后 arr2_2=" + arr2_2.toString());console.log("---------------2--------------------");let arr3 = ["A", "B", "C"];/**可以为数组同时添加多个元素*/let size = arr3.unshift(1, 2, 3);console.log(arr3.toLocaleString(), "数组大小:" + size);/**数组中的元素可以是任意类型,如对象,数组,JSON 等*/size = arr3.unshift({"name": "华安", "age": 35});console.log(arr3.toLocaleString(), "数组大小:" + size, "第一个元素:" + JSON.stringify(arr3[0]));</script>
</head>
<body>
</body>
</html>

shift / pop 方法删除数组首/尾元素

1、shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。此方法将改变原数组的长度!

2、pop() 方法用于删除数组的最后一个元素,并返回删除的元素。此方法将改变原数组的长度!

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"><title>数组测试</title><script>let arr1 = new Array(1, 2, 3, 4, 5);console.log("原数组arr1=:" + arr1.toString());/** 遍历删除原数组所有元素--每次删除第一个元素*/while (arr1.length > 0) {let delShift = arr1.shift();console.log("删除第一个元素:" + delShift, "arr1=" + arr1.toString());}console.log("-------------------------");let arr2 = new Array(1, 2, 3, 4, 5);console.log("原数组arr2=:" + arr2.toString());/** 遍历删除原数组所有元素--每次删除最后一个元素*/while (arr2.length > 0) {let delPop = arr2.pop();console.log("删除最后一个元素:" + delPop, "arr2=" + arr2.toString());}</script>
</head>
<body></body>
</html>

filter() 方法过滤元素

1、filter() 方法创建一个新的数组,新数组中的元素是通过检查数组中符合条件的所有元素。

2、filter() 不会对空数组进行检测,也不会改变原始数组,而是返回一个新的数组。

3、注意与《JavaScript Array map() 方法》的区别,map 与 filter 都是在函数中处理原数组中的每一个元素,并且返回新的数组,原数组不变。不同的是 map 方法对每个元素的处理结果必须返回,即无论对元素做了什么操作,但必须返回一个结果;而 filter 方法处理每个元素重点是判断元素是否符合某个条件,如果处理结果为 true ,则返回此元素,否则不再返回此元素。

4、语法:array.filter(function(currentValue,index,arr), thisValue)

参数 描述
function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数
函数参数:

参数 描述
currentValue 必须。当前元素的值
index 可选。当前元素的索引值
arr 可选。当前元素属于的数组对象
thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"
<script type="text/javascript">let json = {id: 101};//往数组中多添置一些数据类型let arr1 = [1, 2, 30, 25, 18, 40, "Ha", undefined, NaN, null, json];let arr2 = arr1.filter(function (currentValue, index) {console.log("开始处理第 " + index + " 元素");//如果元素大于 25 ,则返回return currentValue > 25;});console.log(arr1.toString());//原数组不变console.log(arr2.toString());//新数组中包含 30,40
</script>
    <script type="text/javascript">let json = {id: 101};//往数组中多添置一些数据类型let arr1 = [1, 2, 30, 25, 18, 40, "Ha", undefined, NaN, null, json];//过滤数组中所有的数值元素let arr2 = arr1.filter(function (currentValue) {return !isNaN(currentValue);});console.log(arr1.toString());//原数组不变console.log(arr2.toString());//新数组中包含 1, 2, 30, 25, 18, 40</script>

map() 方法处理元素

1、通过指定函数处理数组的每个元素,并返回处理后的数组。map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

2、map() 方法按照原始数组元素顺序依次处理元素, map() 不会对空数组进行检测,map() 不会改变原始数组。

3、语法:array.map(function(currentValue,index,arr), thisValue)

参数 描述
function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数
函数参数:

参数 描述
currentValue 必须。当前元素的值
index 可选。当前元素的索引值,从0开始
arr 可选。当前元素属于的数组对象
thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"><title>箭头函数</title><script src="http://code.jquery.com/jquery-2.1.1.min.js"></script><!-- ES6 时,script 的 type 需要标识成 module,否则箭头函数编译不通过,即无法识别--><script type="module">$(function () {let arr1 = [1, 2, 3, 4, 5];/*** 通过指定函数处理数组的每个元素,并返回处理后的数组。* 如下所示对数组中的每个元素进行平方操作* @type {Array}*/let arr2 = arr1.map(function (currentValue, index) {console.log("当前处理数组元素,index=" + index + ",value=" + currentValue);return currentValue * currentValue;});console.log(arr1.toString());//原数组的值不变console.log(arr2.toString());//新数组的值为原数组的值的平方});</script>
</head>
<body>
</body>
</html>

JS Array 对象常用方法 unshift / push 、shift / pop 、filter() / map()相关推荐

  1. js开发:数组的push()、pop()、shift()和unshift()

    JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操作数组(比如删除当前项,则所有之后的 ...

  2. js中 数组的操作 push(),pop(),shift(),unshift() 简介

    JS中的数组提供了四个操作,以便让我们实现队列与堆栈! 小理论: 队列:先进先出 堆栈:后进先出 实现队列的方法: shift:从集合中把第一个元素删除,并返回这个元素的值. unshift: 在集合 ...

  3. js array 对象

    Javascript 对象: Array 对象:数组 创建方法: 1, var a = new Array() 2,var a = new Array(3) 3,var a = new Array(& ...

  4. [JS]Array对象

    目录 Array属性 Array方法 Array属性 描述 constructor 返回创建数组对象的原型函数 length 设置或返回数组元素的个数 prototype 允许你向数组对象添加属性或方 ...

  5. JS window对象常用方法

    窗口对象的属性和方法: 格式: [window.]属性 [window.]方法(参数) opener.属性 opener.方法(参数) self.属性 self.方法(参数) parent.属性 pa ...

  6. JS String 对象 常用方法

    charAt() 方法可返回指定位置的字符. 语法:strObj.charAt(index) <script>var str = "Hello world!";cons ...

  7. 【JavaScript 教程】第六章 数组03— Stack :使用 Array 的push()和pop()方法实现堆栈数据结构...

    英文 | https://www.javascripttutorial.net/ 译文 | 杨小爱 在上节,我们学习了JavaScript Array length属性以及如何正确处理它,错过的小伙伴 ...

  8. JS - Array - 在数组的指定下标添加或替换元素 。 也可删除指定下标的元素

    一,首先介绍下 js Array对象 中的 splice 方法 . ( splice在英文中是剪接的意思 ) 1,定义和用法 splice() 方法用于插入.删除或替换数组的元素. **注意:**这种 ...

  9. js中Array对象。concat,concat,pop,push,reserve,shift,slice,splice,toString,toLocaleString,unshift

    Array对象(arr代码中表示Array创建的实例对象) 创建方式: 1.new Array(); 2.new Array(size);3.new Array(eg01,eg2.eg3.....); ...

  10. js 数组 pop,push,unshift,splice,shift

    <script>    Array.prototype.pop=function(){         if(this.length!=0)this.length--;         r ...

最新文章

  1. 附录7:SciPy实例记录
  2. shadowplay要下载java_Java并发程序设计(二)Java并行程序基础
  3. Linux Kconfig及Makefile学习
  4. 放大镜_小学科学实验器材使用规范之放大镜
  5. iOS开发日记24-详解RunLoop
  6. 零基础带你学习MySQL—Select语句以及注意事项(十)
  7. 苹果紧急修复远程漏洞,影响数十亿设备
  8. ASP.NET中Form验证登录后反复跳转回登录页面的问题
  9. VR厂商,你们考虑过霍金的感受吗?
  10. 软件开发计划_敏捷软件开发实践:估算与计划读书笔记125第23章 案例分析:Bomb Shelter Studio...
  11. go技巧-json转map
  12. 一个通用的pytorch使用预训练模型训练本地数据代码--resnet101为例
  13. Google CFO 的辞职信(引用)
  14. 解决 Please use the NLTK Downloader to obtain the resource
  15. 什么是Saas,以及什么是PLG下的Saas
  16. 企业微信批量导入用户
  17. android通讯录项目分析,Android 通讯录展示
  18. TDengine RESTful 客户端
  19. 【Qualcomm高通音频】如何使用QXDM、QCAT、CoolEditor音频日志抓取、解析和分析?
  20. 中国商务礼仪培训市场趋势报告、技术动态创新及市场预测

热门文章

  1. DataSet如何处理海量数据
  2. 程序化导入导出EXCEL数据,完全由模板输出
  3. [翻译].NET framework 4.0并行编程:入门
  4. android生成错误日志文件,android Crash日志写入文件
  5. JUC与JVM并发编程学习笔记02
  6. mysql建立聚族索引语句,MySQL学习教程之聚簇索引
  7. 使用tf.data.Dataset.from_tensor_slices五步加载数据集
  8. 绘制神经网络工具汇总(重要)
  9. python对lxml解析html得到的xpath路径去除()、[]得到模式路径
  10. 操作系统 关于死锁的面试题