数组的标准定义是:一个存储元素的线性集合(collection),元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量。
而在javascript中,数组是一组特殊的对象。
1.创建数组
通过[]操作符声明一个数组变量:
var arr1 = [];//声明一个长度为0的空数组
var arr2 = ['a','b','c'];//直接在声明数组变量时,在操作符内放入一组元素
通过调用array的构造函数创建数组:
var arr1 = new Array();//声明一个空数组 var arr2 = new Array('a','b','c');//直接传入一组元素 var arr3 = new Array(5);//指定数组长度
在javascript中,数组中的元素不必是同一种数据类型。同时我们也可以调用Array.isArray()来判断一个对象是否是数组。
最经常使用的创建数组的方式是[]操作符,和使用Array的构造函数相比,效率更高。
2.遍历数组
var arr = [1,3,5,7,9,2,4,6,8]; for (var i = 0; i < arr.length; i++) { console.log(arr[i]); };
javascript中的数组也是对象,数组的长度可以任意增长,所以用length属性控制循环次数,可以确保循环遍历数组中所有的元素。
3.数组操作
splice()-向/从数组中添加/删除项目,然后返回被删除的项目。
/* *index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 *howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。 *item1, ..., itemX:可选。向数组添加的新项目。 */ arrayObject.splice(index,howmany,item1,.....,itemX)
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
slice()-在不修改目标数组的情况下返回其中的某个片段,该片段的首尾索引位置由slice()的头两个参数来指定。
concat()-合并多个数组成一个新数组。
indexOf-返回某个指定的字符串值在字符串中首次出现的位置。
split()-把一个字符串分割成字符串数组。
push()-在数组的末端添加一个新元素。push()返回的是改变后的数组长度。
unshift()-将一个元素添加到数组开头。
pop()-移除数组的最后一个元素。pop()返回的是被移除的元素。
shift() -删除数组第一个元素。
reverse()-将数组中元素的顺序进行翻转。
sort()-按照字典顺序对元素进行排序,对字符串比较管用,如果是数字,会被认为是字符串类型。返回修改后的数组。
join()-返回一个由目标数组中所有元素值连接而成的字符串,我们还可以通过该方法的参数来设定这些元素之间的字符串。
forEach()-接受一个函数作为参数,对数组中的每个元素使用该函数。
every()-该方法接受一个返回值为布尔类型的函数,对数组中的每个元素使用该函数。
some()-方法也接受一个返回值为布尔类型的函数,只要有一个元素使得该函数返回true,该方法就返回true。
reduce()-方法接受一个函数,返回一个值。reduce() 方法也可以用来将数组中的元素连接成一个长的字符串。
reduceRight() -它是从右到左执行。
map()-产生新的数组,对数组中的每一个元素使用某个函数。
filter()-传入一个返回值为布尔类型的函数。也可用来过滤字符串数组。