1.数组介绍
引用数据类型
作用:用来保存多个值,可以保存任意数据类型的值
数组也是对象,数组是以'[]'为界限,值与值之间用,分割
普通对象是使用字符串作为属性名的,而数组是使用数字作为索引操作元素
数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据
2. 创建数组
1)数组字面量
语法:[ ]
var arr=[ ];
var arr=[1,2,3,4,5,6]
2)构造函数
var arr=new Array();
传递一个参数:给数组指定数组长度
传递多个参数:相当于初始化数组
//一个参数 创建一个长度为10的数组
arr2=new Array(10);
//多个参数
var arr2=new Array(1,2,3,4,5,6);
3.数组的访问
- 数组下标,数组下标是从0开始的,一直到数组的长度-1,如果访问的数组下标超过数组长度,会返回一个undefined的值
var arr=[1,2,3,4];
arr[0] //1
arr[1] //2
arr[4] //undefined
- 给数组添加项 语法:数组[索引]=值;
- 删除数组最后一项 arr.length=arr.length-1
- 修改length 如果修改的length大于原长度,则多出部分会空出来;如果修改的length小于原长度,则多出的元素会被删除
- 向数组的最后一个位置添加元素 语法:数组[数组.length]=值;
- 获取数组长度 语法:数组.length
4. 数组的遍历
forEach()
这个方法支持IE8以上的浏览器,IE8及以下的浏览器不支持该方法,所以如果需要兼容IE8,则不要使用forEach,还是使用for循环来遍历
forEach()方法需要一个函数作为参数
浏览器会在回调函数中传递三个参数
第一个参数,就是当前正在遍历的元素
第二个参数,就是当前正在遍历的元素的索引
第三个参数,就是正在遍历的数组
//创建一个数组
var arr=['孙悟空','沙和尚','猪八戒','唐僧','白骨精'];
arr.forEach(function(value,index,obj){
console.log(value);
});
5.数组的检测
arr(目标) instanceof Array 如果array是数组,则返回true;如果arr不是数组,则返回false
Array.isArray(arr) 判断arr是否是数组类型
6.数组的序列化
toString() 默认将数组的每一项使用,隔开,以字符串的形式输出
join(参数) 将数组的每一项以想要的符号分隔开,以字符串的形式输出
7.数组的方法
1)栈、队列方法(改变原数组)
栈(先进后出、后进先出)
pop() 将数组的最后一项删除 返回删除的项 同时将数组的长度减一
push() 可以接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度
队列(先进先出,后进后出)
shift() 移除数组中的第一个项 返回该项 同时将数组的长度减一
unshift() 在数组的前端添加任意个项,并返回数组的长度
2) 排序
reverse() 反转数组项的顺序,改变原数组
sort()
默认排序:该方法会调用每个数组项的toString() 方法,然后按照字符序列排序
自定义排序:sort会接受一个函数作为参数,这个函数叫做比较器函数
3) 截取方法
concat()
数组的拼接 不改变原数组 返回副本
slice()
截取数组 不改变原数组 截取到的数组
slice(a) 从第a项开始截取,一直到数组结束
slice(a,b) 从第a项开始截取,一直到第b项,但是不包含第b项 =>[a,b)spilce()
删除 spilce(起始位置,要删除的项数) 返回删除掉的项
插入 spilce(起始位置,0,要插入的任意数量的项) 返回空数组
替换 spilce(起始位置,要删除的项数,要替换的任意数量的项) 返回替换掉的项
4)索引方法
indexOf()
从数组开头向后查找,使用全等操作符,找到返回数组下标,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置lastIndexOf()
从数组末尾向前查找,使用全等操作符,找到返回数组下标,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置
5)迭代方法
参数: 每一项上运行的函数,运行该函数的作用域对象(可选)
every()
对数组中的每一元素运行给定的函数,如果该函数对每一项都返回true,则该函数返回truesome()
对数组中的每一运行给定的函数,如果该函数对某一项返回true,则返回truefilter()
对数组中的每一项运行给定的函数,会返回满足该函数的项组成的数组map()
对数组中的每一元素运行给定的函数,返回每次函数调用的结果组成的数组forEach()
对数组中的每一元素运行给定的函数,没有返回值,常用来遍历元素