JS Array 对象常用方法 unshift / push 、shift / pop 、filter() / map()
目录
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) |
必须。函数,数组中的每个元素都会执行这个函数 函数参数:
|
||||||||
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) |
必须。函数,数组中的每个元素都会执行这个函数 函数参数:
|
||||||||
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()相关推荐
- js开发:数组的push()、pop()、shift()和unshift()
JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操作数组(比如删除当前项,则所有之后的 ...
- js中 数组的操作 push(),pop(),shift(),unshift() 简介
JS中的数组提供了四个操作,以便让我们实现队列与堆栈! 小理论: 队列:先进先出 堆栈:后进先出 实现队列的方法: shift:从集合中把第一个元素删除,并返回这个元素的值. unshift: 在集合 ...
- js array 对象
Javascript 对象: Array 对象:数组 创建方法: 1, var a = new Array() 2,var a = new Array(3) 3,var a = new Array(& ...
- [JS]Array对象
目录 Array属性 Array方法 Array属性 描述 constructor 返回创建数组对象的原型函数 length 设置或返回数组元素的个数 prototype 允许你向数组对象添加属性或方 ...
- JS window对象常用方法
窗口对象的属性和方法: 格式: [window.]属性 [window.]方法(参数) opener.属性 opener.方法(参数) self.属性 self.方法(参数) parent.属性 pa ...
- JS String 对象 常用方法
charAt() 方法可返回指定位置的字符. 语法:strObj.charAt(index) <script>var str = "Hello world!";cons ...
- 【JavaScript 教程】第六章 数组03— Stack :使用 Array 的push()和pop()方法实现堆栈数据结构...
英文 | https://www.javascripttutorial.net/ 译文 | 杨小爱 在上节,我们学习了JavaScript Array length属性以及如何正确处理它,错过的小伙伴 ...
- JS - Array - 在数组的指定下标添加或替换元素 。 也可删除指定下标的元素
一,首先介绍下 js Array对象 中的 splice 方法 . ( splice在英文中是剪接的意思 ) 1,定义和用法 splice() 方法用于插入.删除或替换数组的元素. **注意:**这种 ...
- 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.....); ...
- js 数组 pop,push,unshift,splice,shift
<script> Array.prototype.pop=function(){ if(this.length!=0)this.length--; r ...
最新文章
- 附录7:SciPy实例记录
- shadowplay要下载java_Java并发程序设计(二)Java并行程序基础
- Linux Kconfig及Makefile学习
- 放大镜_小学科学实验器材使用规范之放大镜
- iOS开发日记24-详解RunLoop
- 零基础带你学习MySQL—Select语句以及注意事项(十)
- 苹果紧急修复远程漏洞,影响数十亿设备
- ASP.NET中Form验证登录后反复跳转回登录页面的问题
- VR厂商,你们考虑过霍金的感受吗?
- 软件开发计划_敏捷软件开发实践:估算与计划读书笔记125第23章 案例分析:Bomb Shelter Studio...
- go技巧-json转map
- 一个通用的pytorch使用预训练模型训练本地数据代码--resnet101为例
- Google CFO 的辞职信(引用)
- 解决 Please use the NLTK Downloader to obtain the resource
- 什么是Saas,以及什么是PLG下的Saas
- 企业微信批量导入用户
- android通讯录项目分析,Android 通讯录展示
- TDengine RESTful 客户端
- 【Qualcomm高通音频】如何使用QXDM、QCAT、CoolEditor音频日志抓取、解析和分析?
- 中国商务礼仪培训市场趋势报告、技术动态创新及市场预测
热门文章
- DataSet如何处理海量数据
- 程序化导入导出EXCEL数据,完全由模板输出
- [翻译].NET framework 4.0并行编程:入门
- android生成错误日志文件,android Crash日志写入文件
- JUC与JVM并发编程学习笔记02
- mysql建立聚族索引语句,MySQL学习教程之聚簇索引
- 使用tf.data.Dataset.from_tensor_slices五步加载数据集
- 绘制神经网络工具汇总(重要)
- python对lxml解析html得到的xpath路径去除()、[]得到模式路径
- 操作系统 关于死锁的面试题