1.1. 数组
数组定义:
创建数组的基本方式有2种.
第一种是使用Array的构造函数
不指定长度
vararrs=new Array();
如果确定知道数组保存的数量,可以通过构造函数传递数组的长度
指定长度
vararrs=new Array(20);
该数组有20个元素,每一项的默认值都是undefined
指定元素
var arrs=new Array("hello"); 会创建一个元素的数组.
第二种方式
指定元素
创建一个包含3个字符串的数组
vararrs=["aa","bb","cc"];
创建一个空数组
vararrs=[];
varvalues=[1,2];
数组初始化
vararrs=["aa","bb","cc"];
color[2]="xx";//修改第3项
color[3]="zz";//新增第4项
数组遍历:
for(var i = 0; i < arr.length; i++){
alert(arr[i]);
}
或
for( var i in arr ){
// i 是遍历出的数组中的索引,从0开始,一直到最大索引。
// 如果有其他属性,也会遍历出来,其实索引就是数组对象的属性。
alert(arr[i]);
}
注意:
JS数组可以动态增长:
//数组的声明和初始化,注意:数组的长度取决于整数下标的个数 var arr = new Array(); arr[0] = "aa";2 arr[1] = "bb"; arr[6] = 'xx'; document.write(arr + "<br/>"); //遍历数组 for (var i = 0; i < arr.length; i++) { document.write(arr[i]+"<br/>"); } //下标越界时: var arr = ["aa", "bb"]; document.write(arr[200]); // 显示undefined |
常见方法
Array中的方法:
sort()
对当前数组进行排序,并返回已经进行了排序的此Array对象。
不会创建新对象,是在指定数组中直接进行排序。
reverse()
对当前数组进行反转排序,返回一个元素顺序被反转的 Array 对象。
不会创建新对象,是在指定数组中直接进行排序。
push( [item1 [item2 [. . . [itemN ]]]] )
将以新元素出现的顺序添加这些元素。
如果参数之一为数组,那么该数组将作为单个元素添加到数组中。
pop()
移除数组中的最后一个元素并返回该元素。
如果该数组为空,那么将返回 undefined。
shift()
移除数组中的第一个元素并返回该元素。
如果该数组为空,那么将返回 undefined。
unshift([item1[, item2 [, . . . [,itemN]]]])
将指定的元素插入数组开始位置并返回该数组。
splice(start, deleteCount, [item1[,item2[, . . . [,itemN]]]])
移除从 start 位置开始的指定个数的元素,并插入新元素,从而修改 concat([item1[, item2[, . . . [, itemN]]]])
返回一个新数组,这个新数组是由两个或更多数组组合而成的。原数组不变。
要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。
如果某一项为数组,那么添加其内容到 array1 的末尾。
如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。
slice(start, [end])
返回一个包含了指定的部分元素的数组。
将返回索引大于等于start且小于end的一段。
原数组不变。
join(separator)
把所有元素由指定的分隔符分隔开来组成一个字符串,返回这个字符串值。
如果数组中有元素没有定义或者为 null,将其作为空字符串处理。
var a = [1, 2, 3]; // 连接两个或更多的数组,并返回结果。 document.write(a.concat([100, 30]) + "<br/>"); document.write(a.concat([100, 30], [60, 90]) + "<br/>"); // 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 var b = a.join("$"); document.write(b + "<br/>"); document.write( typeof b + "<br/>"); //string // 删除并返回数组的最后一个元素 document.write(a.pop() + "<br/>"); // 向数组的末尾添加一个或更多元素,并返回新的长度。 document.write(a.push(99, 78) + "<br/>"); // 把数组转换为字符串,并返回结果。 document.write(a.toString() + "<br/>"); // 返回数组对象的原始值 var c = a.valueOf(); document.write( typeof c + "<br/>"); |
排序:
var a = [100, 9, 20, 3, 7, 96]; document.write(a + "<br/>"); //如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序 a.sort(); document.write(a + "<br/>"); //指定比较方式 a.sort(compareTo); document.write(a + "<br/>"); function compareTo(a, b) { return a - b; }
|