- 索引数组
var arr1 = []; //定义一个空数组
arr1[0] = 1; //向空数组中添加元素
arr1[1] = "hello";
arr1[2]=true; //可向数组中添加任意类型的数据,即混合数组
// 第二种创建空数组的方法
var arr2 = new Array();
//创建数组的同时初始化
var arr3 = [1,2,3];
var arr4 = new Array(1,2,3);
var arr5 = new Array(1,"Li Ming",true);
//数组的长度
var len1 = arr3.length;//返回arr3的长度
var len2 = arr4.length;
var arr6 = [5];
var len3 = arr6.length; //len3的值为1
var arr7 = new Array(5);
//len4值为5,即创建长度为5的数组
var len4=arr7.length;
//数组的遍历
var arr8 = [1,2,3,4,5];
for(var i = 0; i < arr8.length; i++)
{
alert(arr8[i]);
}
对于索引数组
1.不限制数组元素的个数,长度可变
2.不限制下标越界,数组越界不报错,返回undefined,可以在指定下标创建新元素,数组长度会自动修改为最大下标加1.
3.不限制元素的数据类型
- 关联数组
var poem=[];
poem["白居易"]="草";
poem["李白"]="静夜思";
poem["杜甫"]="望岳";
//遍历关联数组用for...in循环
for(var key in poem)
{
alert(poem[key]);
}
数组函数
- String():将数组中的每个元素转化为字符串,用逗号分隔
var arr1=[1,2,3];
String(arr1);
alert(arr1);
- 数组名.join(“连接符”):将数组中的每个元素转化为字符串,用自定义的连接符分隔。
- concat():拼接数组,并返回结果
var arr1=[1,2,3];
var arr2=[4,5,6];
var arr3=arr1.concat(arr2);
var arr4=arr1.concat(arr2,7,8,9);
String(arr3);
String(arr4);
alert("arr3:"+arr3);
alert("arr4:"+arr4);
- slice():返回数组的一个子数组
var arr1=[1,2,3,4,5];
//arr2=[2,3],即下标从1到2,不包括3,含头不含尾。
var arr2=arr1.slice(1,3);
//arr3将包括从下标1到数组结束的元素
var arr3=arr1.slice(1);
// arr4=[3,4],倒着数,也是含头不含尾,-3时头。当需要选取的元素离结尾近时可以这样用
var arr4=arr1.slice(-3,-1);
//可通过这种方式复制数组
var arr5=arr1.slice(0,arr1.length);
//或者简写成
var arr6=arr1.slice();
- splice():修改数组
1.删除
var arr1=[1,2,3,4,5];
// 从arr1的下标2开始删除2个元素,返回删除的元素,此时arr1=[1,2,5],arr2=[3,4].
var arr2=arr1.splice(2,2);
alert(String(arr2));
2.插入
var arr1=[1,2,3,4,5];
// 从下标2开始删除0个元素,然后在下标2处插入两个元素98、99,相当于插入
arr1.splice(2,0,98,99);
alert(String(arr1));
3.替换
var arr1=[1,2,3,4,5];
//从下标2开始删除2个元素,并在下标2处插入2个元素,相当与替换,删除的元素数量可以和新插入的元素数量不同
arr1.splice(2,2,98,99);
alert(String(arr1));
- reverse():颠倒数组中元素的顺序
var arr1=[1,2,3,4,5];
arr1.reverse();
alert(String(arr1));
- sort():将所有元素转化为字符串再排序,所以有一定的局限性。
var arr1=[2,4,3,5,1];
var arr2=["abc","acc"];
arr1.sort();
arr2.sort();
alert(String(arr1));
alert(String(arr2));