JavaScrip 数组

一、一维数组

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 降序排列






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值