js数组
Array类型
ECMAScript数组的每一项可以保存任何类型的数据。而且ECMAScript数组的大小时可以动态调整的,即可以随着数据的添加自动增长以容纳新增的数据。
1.数组的创建(当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。)
创建数组的方式有两种,一是构造函数
即:var arr=new Array();
也可以传递参数,传递的是数值则创建等于该值项数的数组,如果传递的是其他类型的则创建一个包含一项的数组。
var arr=new Array(size);//size为一个自然数值,指定长度,注意不是上限,是长度
var arr new Array("song");
var arr=new Array(element1,elelment2,...elementn);//当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。
第二种方式是使用数组字面量表示法
var arr=["red","yellow","green"];//创建包含3个字符串的数组
var arr=[];//创建一个空数组
2.数组元素的访问
var ele1=arr[1];//获取数组元素的值
arr[1]=123;//给数组元素赋新值
3.数组元素的添加
arr.push([ele1[ele2[...[elen]]]]);//将一个或多个元素添加到数组的结尾,并返回数组的新长度。
arr.unshift([ele1[ele2[...[elen]]]]);//将一个或多个元素添加到数组的开始,并返回数组的新长度。
arr.splice(index,howmany,ele1,ele2);//splice功能强大,可以删除、添加、替换
index:要删除/添加的开始位置
howmany:要删除/添加的个数,为0时不删除。
elen:可选,规定要添加的元素
4.数组的删除
arr.pop();//删除数组的最后一个元素
arr.shift();//栓出数组的第一个元素
arr.splic(index,1);//删除数组下标为index的元素
5.数组的截取和合并
arr.slice(start,[end]);//返回一个数组从start到end(不包括)的新数组。start:必选,可以为负数,当为负数时,从后面数过来。end:可选。
arr.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
6.数组的拷贝
arr..slice(0);//返回的时新数组,不是指向
arr.concat();//返回的时新数组,不是指向
7.数组的排序
arr.reverse();//数组的反转。
arr.sort();//数组的排序,返回数组地址
8.数组的字符串化
arr.join(separator);//返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。如:arr=[1,2,3];var str=arr.join(',');str为1,2,3
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
9.数组的迭代
ECMAScript5为数组定义了5个迭代方法。每个方法都接受两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值。传入 这些方法中的函数会接收三个参数:数组项的值、该项在数组中的位置和数组对象本身。一下介绍5个迭代方法。
1)every():对数组中的每一项裕兴给定函数,如果函数对每一项都返回true,则返回true。
2)filter():对数组中的每一项运行给定函数,返回该函数回返回true的项组成的数组。
3)forEach():对数组中的每一项运行给定的函数。这个方法没有返回值。
4)map():对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组。
5)some():对数组中的每一项运行给定的函数,如果该函数对任一项返回true,则返回true。

浙公网安备 33010602011771号