JavaScript 数组及数组函数常用方法(完全版)
一、数组定义
保存任意类型的数据集合
(1)构造函数方式实现: var arr = new Array()
可以制定数组的长度
(2) var a = [];
二、数组数据操作
(1)赋值方式
var a1 = [];a1[0] = "hello";var a2 = ["a","b"];a2[1] = b;
(2)指定长度
var arr = new Array(3) 长度为3的数组arr[0] --> undefinedarr.length;var arr = [,,];arr[1] --> undefined
(3)数组的遍历
var arr = [23,24,25,26]; 下标从0开始[1] for (var i =0; i < arr.length; i++){ arr[i];}[2] for infor(var i in arr){ }
(4)数组的添加和删除
var arr = [34,56,12];push(88); 在数组末尾添加数据,对原数组进行修改,返回值为修改后的数组长度pop(); 在数组末尾删除一个数据 返回的是被删除的元素unshift(); 在数组起始添加数据 对原数组进行修改,返回值为修改后的数组长度shift(); 在数组起始删除一个数据 返回的是被删除的元素
三、数组的操作方法
1、reverse() :对原数组进行翻转
var arr = [1,2,3,4,5,6];arr.reverse();[ 6,5,4,3,2,1 }
2、join(); 制定分隔符 将数组转换为字符串 生成新的字符串
var a = "1,2,3,4,5"var b = a.split(",");b.join(""); 12345
3、concat(); 连接数组,将数据添加到数组的末尾,不修改原数组 生成新的数组,只能打散一维数组
不会打散数组中包含的数组var a = "1,2,3,4,5"var b = "6,7";a1.concat(b);var a = [1,2,3,4,5];var b = [6,7];console.log(a.concat(b)); [1, 2, 3, 4, 5, 6, 7]console.log(a.concat(55,66)); [1, 2, 3, 4, 5, 55, 66]console.log(a.concat([88,99],[11,22]))[1, 2, 3, 4, 5, 88, 99, 11, 22]console.log(a.concat([[11,22]],[33,44],"abc"));[1, 2, 3, 4, 5, Array(2), 33, 44, 'abc']
4、slice() 截取子数组 不修改原数组 生成新的数组
起始不包含 终止包含 如为负数,由右向左倒数截取var a = [1,2,3,4,5];a.slice(2,4) [3,4]a.slice(1,4) [2, 3, 4]a.slice(2) [3, 4, 5]a.slice(2,10) [3, 4, 5]a.slice(-4,-2) [2, 3]
5、splice() 增加和删除数组元素
splice(arg1,arg2,arg3...)arg1 = 起始位置如只有一个参数,表示从起始位置删除所有的元素,返回的是被删除的元素如果第一参数为负数,则从右向左查找arg2 = 删除元素个数如果有两个参数,表示被删除的元素个数如果第二个参数为负数,默认变为0arg3及后面所有参数 要插入数组中的元素var a= [1,2,3,4,5,6,7]a.splice(1,2,3,4,5) [1,3,4,5,4,5,6,7]从下标1处删除两个元素,把新添加元素3,4,5 添加到删除位置处b = a.splice(2) a = [1,2] / b = [3,4,5,6,7]a.splice(2,2) [1,2,5,6,7] a.splice(2,0) [1,2,3,4,5,6,7]a.splice(2,0,0,0,0) [1,2,3,0,0,0,4,5,6,7]a.splice(-2,-3,7,8) [1,2,3,4,5,6,7,8,7,8]
四、数组检测
var arr = [];
1、typeof(arr) --> Object2、Array.isArray(a1) true3、if(arr instanceof Array){} true4、arr.constructor == Array true
五、数组的toString()方法
所有对象都有toString() valueOf() toLocaleString()
toString():每个值的字符串形式,以,拼接数组转字符串
六、数组的下标
var arr = [0,1,2,3,4,5];
arr[0] -- > 0
范围:0 - 2^32
arr[true] undefined
obj = {name:"tt"}arr[true] -- > 当作obj处理
arr[-2] undefined
arr[1.6] undefined
下标可以是逐渐递增的表达式
var arr = [];for (var i = 0;i<10;i++){
arr[i++] = i;
}
七、数组函数
数组函数
1、indexOf() 返回数组中第一个找到的元素的位置,不存在返回 -1
2、forEach()
数组.forEach(function(遍历元素值,下标,当前数组){})var arr = [1,2,3,4,5,6,7,8,9,10]arr.forEach(function(item, index,arr) {console.log(item,index)item数组值 index数组下标 arr数组本身})
3、map() 对数组的每一项进行遍历
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.map(function (item, index, arr) {
return item * 2;
}).map(function (item, index){ --链式调用
return item * 10;
});
***** map()与forEach的区别
1、forEach只是遍历,map可以生成新的数组2、map比forEach速度更快3、map可以进行链式调用
4、filter() 数据过滤
数组.filter(function(遍历元素值,下标,当前数组){})(1)返回新数组,不对原数组修改(2)对返回true的结果过滤,false的结果忽略var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];提取出 > 30的数据var arr2 = arr.filter(function(item){return item > 5;})
5、reduce() 接受一个函数作为累加器,数组中的每一个值,从左到右开始缩减
最终计算为一个值数组.reduce(function(初始值,遍历元素值,下标,当前数组){},赋初始值(可省略))a1 = [1,2,3,4,5];a2 = a1.reduce(function(init,value,index,arr){return init + value;// 将init value 逐次累加 返回最终结果})
6、some() 判读数组是否有满足条件的元素 相当于||
数组.some(function(遍历元素值,下标,当前数组){})var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]arr.some((item,index) =>{return item > 6;});true返回Boolean类型,true: 如果找到了满足条件的元素,返回true则循环结束,跳出循环体false: 没有找到,循环继续。函数的执行次数 不等于数组的长度
7、every() 检测数组中所有元素是否都满足指定条件 相当于&&
数组.every(function(遍历元素值,下标,当前数组){})有一项不满足就返回false,都满足才返回true函数的执行次数不一定等于数组长度var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]arr.every((item) =>{return item > 0;});
JavaScript 数组及数组函数常用方法(完全版)相关推荐
- javascript类式继承函数最优版
直接上代码: klass函数 var klass = function (Parent, props) {var Child, F, i;//1.新构造函数Child = function () {i ...
- JavaScript强化教程——数组的基本处理函数
2019独角兽企业重金招聘Python工程师标准>>> 本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 -- 数组的基本处理函数 Arra ...
- html函数参数数组遍历,JavaScript foreach遍历数组
JavaScript forEach遍历数组教程 JavaScript forEach详解 定义 forEach() 方法为每个数组元素调用一次函数(回调函数). 语法 array.forEach(f ...
- JavaScript【流程控制】【数组】【函数】【函数作用域】经典!!
表达式和语句 表达式 一个表达式可以产生一个值,有可能是运算.函数调用.有可能是字面量.表达式可以放在任何需要值的地方. 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句.一个程序有很多 ...
- javascript打飞机程序8x8x飞机大战js打飞机程序,飞机大战知识点包含了JavaScript面向过程的全部知识点,包括变量、运算符、判断、循环、数组、自定义函数、系统函数、事件等。...
js打飞机程序,飞机大战知识点包含了JavaScript面向过程的全部知识点,包括变量.运算符.判断.循环.数组.自定义函数.系统函数.事件等. 讲解了JavaScript编程语言制作游戏界面,添加游 ...
- JavaScript二维数组与函数
目录 一.二维数组 1.创建方式 2.访问二维数组元素 3.练习 (1)求3*4的二维数组的每行元素之和 (2)求3*4的二维数组的每列元素之和 (3)求3*3的二维数组的对角线元素之和 4.二维数组 ...
- JavaScript二维数组和函数
一.二维数组 1.什么是二维数组? 通过两个下标(索引)来确定一个元素.二维数组可以理解为数组的数组.二维数组组织为矩阵,可以表示为行和列的集合. 2.创建方式 2.1.通过new Array()创建 ...
- JavaScript二维数组的常用方法及排序
多维数组: 多维数组实际上就是数组的数组,指数组的每一元素也是一个数组: JavaScript中的二维数组的列的长度可以不唯一: 二维数组的创建: //创建已知的二维数组var multiArr=[[ ...
- JavaScript数组和字符串的常用方法
1. 数组的常用方法总结 forEach():为数组中的每个元素执行一次回调函数 var arr = [1,2,3] arr.forEach((i, index, arr) => {consol ...
- JavaScript数组的定义及常用方法
目录 前言 一.数组是什么? 二.数组的定义方式 1.字面量方法 2.构造函数创建 三.数组常用方法 1.push:在数组最后一位添加方法,可添加多个 2.pop:把数组的最后一位剪切(传参无效) 3 ...
最新文章
- 小样,加张图你就不认识我了?“补丁”模型骗你没商量!| 技术头条
- (21)页目录表,页表基址(XP系统 10-10-12分页模式)
- Android开发之activity跳转页面失败的问题
- JavaScript --- 渲染数据量大的数组
- bzoj1003[ZJOI2006]物流运输
- 手把手教你运用深度学习构建视频人脸识别模型(Python实现)
- 可以通过格式化硬盘清除计算机病毒吗,电脑中毒,完全格式化硬盘可以吗?
- 上网行为管理软件的功能
- 计算机图形学与OpenGL
- 拼音搜索 -- 自动解析拼音汉子组合(包含多音字,拼音缩写)
- 装mysql电脑网卡不见了_网络适配器不见了怎么办【解决方法】
- 农业大田作物智慧种植科研
- 最简单日柱推算法_干支记日推算方法揭秘
- 知乎问题下用户评论的爬取
- MySQL No compatible servers were found.You’ll need to cancel this wizard and install one
- 【必拿下系列】106. 从中序与后序遍历序列构造二叉树105从前序与中序遍历序列构造二叉树
- D3D绘制2D图像例子
- kindle无法开机
- 【计算机科学基础】玩转CSDN博客
- UA OPTI544 量子光学14 补充:经典分光器与量子分光器
热门文章
- [转]JSP文件管理器0.5版本,显示目录和文件,支持cmd操作,也可当jsp木马使用...
- 结构体指针初始化问题
- 2023年AP课程商科学科考试报名开启,AP社会考生报名火热咨询中
- 中国食用菌市销售态势与竞争趋势预测报告(新版)2022-2027年
- 电脑突然无法拖动文件
- 苹果Mac OS X系统安全评级(2)
- 线上问题-kafka生产者发送消息总是失败
- 利用代码修改layout_marginBottom的属性
- 5-2 文件系统及其功能
- 在 M1/M2 Mac 上,让 Windows 11 免费“跑”起来!