ECMAScript之数组篇

来源:互联网 发布:暗网 知乎 编辑:程序博客网 时间:2024/06/06 17:40

ECMAScript包括语法,类型,语句,关键字,保留字,操作符,对象。


创建数组:
创建没有内容的数组:
var arr = new Array();//创建空数组
var arr = new Array(2);//创建一个空间为2的数组
var arr = []; //创建空数组
创建有内容的数组:
var arr = new Array(2,3);
var arr = new Array("123");
var arr = [1,2,3];
数组的读与写:
arr[1]与arr["1"]一样
var i='str';
arr[i]与arr['str']与arr['s'+'t'+'r']一样
arr[-1.2]把-1.2转为字符串,创建名为‘1.2’的属性
arr["1000"]是索引下标1000的元素
稀疏数组:
从0开始不连续索引的数组。
var arr = new Array(5);此时只是声明了数组的长度, 数组的索引还没有创建
var arr = [,,,]类似创建了长度为3的数组,但是数组的索引还没有创建
0 in arr ;//false
console.log(arr)//不同的浏览器有不同的输出结果,chrome输出[],firefox输出
[undefined,undefined,undefined],ie输出[,,,]
数组长度:
数组的长度可以操纵数组内拥有的元素
var arr =[1,2,3,4];
arr.length=2;//删除了数组3,4元素
arr.length=0;//重置数组
数组的方法:
join('分隔符');如果分隔符是空或者undefined则使用逗号分隔,数组元素之间用分隔符隔开组成
一个字符串,并返回字符串
reverse()倒序,在原来的数组上倒序
sort(function)对数组元素排序,并返回排序后的数组,也是在原来的数组上排序。当没有参数
时,按字母顺序排序。传入的函数参数可以规定排序规则,函数包括两个参数,第一个参数大于第
二个参数时,返回true
concat(array1,array2,array3....)创建并返回一个新数组。先创建当前数组的一个副本,然后如果
参数是数组,则简单的添加数组的每一项到副本的末尾,如果参数不是数组,则直接添加到副本的
末尾。该方法不改变原数组。
slice(start,end);获取数组的一部分。参数是原数组的的开始和结束位置,并返回子数组。该方法
不改变原数组。不包含end位置的元素。start+length要小于end+length,否则返回一个空数组,
参数可以是负数。
splice(deleteindex,number,insert...);该数组有三个参数,第一个是删除开始的下标,number是
需要删除的元素个数,insert是需要在deleteindex的位置开始插入的元素,第二个参数之后可以有
任意多个参数,都是要插入的元素。删除的元素从delerteindex开始计数。方法返回的是被删除的
元素组成的数组。该方法会改变原来的数组。
push(arg1,arg2,...)向数组的尾部添加元素,并返回数组新的长度。
pop()删除尾部的最后一个元素,并返回删除的元素
shift()删除数组的头部的第一个元素,并将删除的元素返回。
unshift(arg1,arg2,arg3....)向数组的头部增加一个或多个元素,并返回数组的长度。如果有多个参
数,参数在数组的顺序与在参数列表的顺序一样。
toString()将数组的每个元素转化为字符串(可以调用元素的toString方法),并用逗号隔开每个
分隔字符串列表。
toLocalString()是toString()的本地化版本。
forEach(function(x,index,arr));遍历数组,x为遍历的元素,index为元素的下标,arr为数组本
身。该方法只是遍历操作数组,不会有返回值。
map(function(item,index,arr))遍历数组,并返回一个新的数组。
filter(function(item,index,arr))过滤元素,返回一个数组。
every(function(item,index,arr))返回值是true或false,函数内只要一个返回false,则返回false.
some(function(item,index,arr))函数内只要一个是返回true的,则返回true.
reduce(function(result,item),inite)inite是初始值,result是每次函数调用返回的结果,开始的时
候result的值是inite的值。最后方法返回result.
reduceRight()与reduce的使用方法一样,不同的是reduceRight是从右到左遍历
indexOf(item,pos)搜索数组某一个值得下标,如果不存在,则返回-1,否则返回元素的下标。
item是需要搜索的值,第二个参数是开始搜索的位置。
lastIndexOf()与indexOf相反,从尾部开始搜索
判断数组类型:
Array.isArray([]);
[] instanceof Array
Object.prototype.toString.call([])=== '[object Array]'
数组遍历:
for循环
continue跳出本次循环。
多维数组:
var row = new Array(10);
for(var i=0;i<row.length;i++){
row[i]= new Array[10];
}