在JavaScript中,我们使用数组存储多个值。首先需要注意的是,js中数组的每一项都可以保存任何类型的数据,也就是说,可以用数组的第一个位置来保存数值,第二个位置来保存字符串,第三个位置来保存对象,以此类推。而且,数组的大小是可以动态调整的,及可以随着数据的添加自动增长以容纳新的数据。还有数组索引从0开始
定义数组:
1.使用构造函数
var arr = new Array();
var arr = new Array(5); //传参代表知道数组要保存多少项目
var arr = new Array("12","13","14","15"); //直接传递数组中要保存的数据
2.使用数组字面量表示法(IE与其他浏览器的实现不一致,不建议使用)(不会调用Array的构造函数(除了Firefox))
var colors=[“red”,“blue”,"green"] //创建一个包含3个字符串的数组
var values=[1,2,] //不要这样!!!!会创建一个包含两个(Firefox,Opera,Safari,Chrome等)或三个项(IE)的数组
访问数组:
我们通过数组名加索引来访问数组, 索引基于0
如 给数组赋值 arr[0]=10; 获取数组的值 alert(arr[0]);
数组长度:arr.length
如:var length = arr.length;
注意该属性不是只读的,可通过设置该属性以从数组末尾移除或想数组中添加新项 ,如:
var colors=[“red”,“blue”,"green"]
colors.lenth=2;
alert(colors[2]) //得到undefined 移除
如果设为4
colors.lenth=4;
alert(colors[3]) //得到undefined 新增,没有赋值
常用方法:
1、sort() :对数组元素排序
注意此时得到的结果为 1,10,1000,25,5,40.因为该函数比较的是字符串,解决方法如下:
function compare(val1,val2){
if(val1>val2){
return -1;
}else if(val1<val2){
return 1;
}else{
return 0;
}
}
将 该函数作为参数传递给sort()即可实现降序功能,升序类似
2、reverse():让数组元素逆序排列
3、concat():创建当前数组的一个副本,然后将接收到参数添加到该副本末尾,返回新的数组.
参数为空或者1到多个数组.如:
var colors=[“red”,“blue”,"green"]
var colors2=colors.concat("yellow",["black","brown"])
alert(colors2) //red blue green yellow black brown
4.slice():基于当前数组中的一个或多个项创建一个新数组
参数1个:从该位置开始复制 参数两个:从第一个参数指定的位置开始,复制到第二个参数指定位置前一位,不包含该位置的项,如:
var colors=[“red”,“blue”,"green","black","brown"]
var colors2=colors.slice(1) //blue green black brown
var colors2=colors.slice(1,4) //blue green black