一、一维数组
1、一维数组的创建
创建一维数组的形式有:
var arrname=new Array(元素0,元素1,….);
var arrname=new Array(length);
var arrname=[元素0,元素1,….];
JavaScript可以使用预定义的Array对象及其方法提供对创建任何数据类型的数组的支持。
Array对象也就是数组对象,具体对象的产生必须使用new Array()命令,由new Array()产生的数组都是动态数组,也就是数组的大小是不定的。也可以由new Array(arrayLength)来产生一个指定大小的数组,该对象常用的只有一个length属性,表示一个数组中元素的个数。
一维数组创建举例:
var arr1 = new Array(“apple”,”orange”,”banana”)
var arr2 = new Array(10)
var arr3 = [“北京”,”上海”,”沈阳”]
var arr4 = new Array(1,4,6,7,9);
大家不要和java混淆,,java中是这样的语法:
例如声明一个整形数组:
int intArray=new int[3];
2、一维数组的读写
对数组进行写入和读取都是靠索引的方式。
例:var classId = new Array(3);
classId[0] = “Oracle”;
classId[1] = "Internet“;
classId[2] = "JavaScript“;
for (var i=0; i<classid.length; i++){
document.write(a[i]+"<BR>");
}
注意:
1. Array只有一个属性,就是length ,获取数组中元素的个数。
2. 数组元素第一个索引都是从0开始的。
二、二维数组
1、二维数组的创建
创建二维数组的形式有:
vararrname=new Array(数组0,数组1,…);
vararrname=new Array(length);
var arrname=[数组0,数组1,….];
其实,在javascript中是没有二维数组的,如果需要多维数组作为数据结构,只能借助一维数组。
JavaScript通过Array对象创建的数组都是一维的,但是可以通过在数组元素中使用数组来实现二维数组,也就是说二维数组中的元素实际就是一维数组。
如果把一维数组看作为一行数据表格,那么,二维数组就可以看作为多行数据表格。
二维数组创建举例 :
var a = new Array(new Array(7,3,6,5), new Array(2,9,0,6));
var a=[[7,3,6,5],[2,9,0,6]];
大家不要和java混淆,,java中是这样的语法:
String [][] s= { { "1","11" }, { "2","22" }, { "3","33" }, { "4","44" }}
2、二维数组的读写
声明一个二维数组,如何将其按图进行读取显示?
var a = new Array(3);
a[0]=new Array(7,3,6,5);
a[1]=new Array(2,9,0,6);
a[2]=new Array(7,9,6,7);
二维数组需用双层for循环读取:
for(var i=0; i<a.length; i++){
for(var j=0; j<a[i].length; j++){
document.write("a[“+ i+ "][“+ j+ "] = “+ a[i][j]+ "<BR>");
}
}
注:上面的二维数组a也可以写成:var a=[[7,3,6,5],[2,9,0,6],[7,9,6,7] ]
三、数组的常用方法
concat()
join([字符])
reverse()
sort([fun])
toString()
slice(start, [end])数组有很多方法,但是本章我们着重讲解一下几个常用方法:
concat() 输出将所有元素结合的完整字串,反回的结果是数组
join([字符]) 输出将所有元素结合的完整字串,反回的结果是字符串
reverse() 将所有元素反转
sort([fun]) 将元素按字母顺序由小到大排序
toString() 输出以字串表示所有元素
slice(start, [end]) 以数组的形式返回数组的一部分
注:[ ]表示可选。
sort([fun])如何按数值排序
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000“
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort())
</script>
//输出:
//10,5,40,25,1000,1
//1,10,1000,25,40,5
<script type="text/javascript">
function sortNumber(a, b){
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
</script>
定义和用法
sort() 方法:用于对数组的元素进行排序。
语法
arrayObject.sort(sortby) 参数描述sortby可选。规定排序顺序。必须是函数。返回值
对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
说明
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
左面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数。
右面的代码实现了。
A – b 升序排列
B – A 降序排列