length属性
可以通过访问length属性,得到数组的长度;也可以通过访问length属性,为其赋值,来决定数组的长度。
e.g. var a = [];
a.length = 5; // 数组a的长度为5,但是没有元素;次数组为稀疏数组,稀疏数组的长度大于元素个数。
常用方法
- push( ): 在数组末尾增加一个或多个元素;
- pop( ): 删除数组最后一个元素,并返回此元素;数组长度减1;
- delete操作符: 可以使用delete操作符删除位于某索引值处的元素,但是不会修改数组length属性;
- shift( ): 删除数组的第一个元素,并返回此元素;所有随后元素下移一个位置来填补数组头部的空缺;
- unshift( ): 在数组头部添加一个或多个元素,将已存在的元素移动到更高索引的位置;当添加多个元素时,元素时一次性插入的;
- join( delimiter ): 将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串。delimiter默认使用逗号;
- reverse( ): 颠倒数组中元素的顺序,按逆序排列;直接在原数组中重新排列;
- sort( ): 将数组中元素排序并返回排序后的数组;当不带参数时,按字母表排序;如果要按照其他方式排序,必须给sort方法传递一个比较函数;比较函数有两个参数,如果第一个参数在前,则比较函数应该返回一个小于0的数值,如果第一个参数在后,则比较函数应该返回一个大于0的数值,如果函数返回0,两个值相等;
- concat( value, ......): 将参数衔接到调用此方法的数组中,并返回衔接后数组;
- slice( start, end ): 返回数组的一个片段或子数组;同string的slice方法类似;
- splice( start, deletecount, value, ......): 返回删除元素组成的数组,会修改原数组;
- toString( ): Object.prototype的方法,数组同其他对象一样,也有toString( )方法,会将每个数组元素转化为字符串,并且输出用逗号分隔的字符串;
- forEach( )方法: 从头遍历数组,为每个元素调用指定函数;传入的函数有三个参数, 分别为数组元素, 元素索引和数组本身, 也可以传入只有一个参数的函数,参数为数组元素;【forEach( ) 方法无法在所有元素都传递给调用的函数之前终止遍历】
- map( ): 将调用数组的每个元素传递给指定的函数,并且返回一个数组;函数必须有返回值,返回的新数组的元素由这些返回值组成;
- filter( ): 返回的数组元素是调用的数组的一个子集,传递的函数用来逻辑判定的; 传递的函数必须有返回值,返回的新数组的元素由判断为true的原数组元素组成;
- every( ), some( ): 用于数组的逻辑判断, 传入一个指定函数,用于对数组元素进行判定,返回ture or false;every( )所有元素调用判定函数都返回ture时才返回ture, some( )至少有一个元素调用判定函数返回ture时即返回ture
- indexOf( ), lastIndexOf( ): 传入一个参数,搜索整个数组是否有值为传入的参数的元素,返回找到的第一个元素的索引,否则,返回-1; lastIndexOf( ) 从右向左搜索。
var a = [1, 3, 2, 4]; a.join( ); // "1,3,2,4" a.join( " " ); // "1 3 2 4" a.join( "" ); // "1324" a.join( "-" ); // "1-3-2-4" a.reverse( ); // a数组为[4, 2, 3, 1]
数组遍历
- 使用for循环遍历数组元素;
- 使用forEach( ) 遍历数组元素;