你的位置:首页 > Java教程

[Java教程]javascript Array对象


一,创建数组对象

JavaScript的数组支持了对任何数据类型的支持,并不会像java,C#那样指定了数组类型只能存储这种类型。

我们可以使用以下三种方法来创建JavaScript数组对象,

  1,var arr=new Array();

  2 , var arr=new Array([size]);//size为整数,定义一个固定长度的数组

  3,var arr=new Array(element1[,element2[,…elementN]]);//elementN 为数组的元素

 

二,数组赋值

从上面创建数组对象的方法来看,只有使用第一种和第二种方法创建的数组对象需要再次赋值,第三种方法在创建的时候已经赋值。对于第一种和第二种方法创建的数组对象我们可以使用以下的方法进行赋值

var arr1=new Array();arr1[0]=1;arr1[1]=2;arr1[2]=3;var arr2=new Array(3);arr2[0]=1;arr2[1]=2;arr2[2]=3;

 

但对于创建数组时指定了数组对象的长度,只能在长度范围内对数组进行赋值,超出范围则无法赋值,例如上面例子中 arr[3]=4,是不能赋值成功的。

当然除了上面的赋值方式外,我们还可以使用Array对象提供的方法对数组进行赋值,将在下面数组方法中介绍。

 

三,数组的访问

javascript数组的访问方式跟其他的语言的访问数组的方式相同,都是通过下标对数组进行访问,如下

var arr1=new Array();arr1[0]=1;arr1[1]=2;arr1[2]=3;document.write(arr1[0]);

四 ,数组元素的修改

JavaScript 数组元素的修改非常简单,只要像指定下标添加一个新值即可,如下

var arr1=new Array(); arr1[0]=1; arr1[1]=2; arr1[2]=3; arr1[0]=4; document.write(arr1[0]);
 

输出结果将会是4,而不是1,这样就可以修改成功

 

五,第三种创建数组对象特别说明

如果我想使用第三种方法对数组赋值一个整数,比如我想赋值一个 1在数组中,可以使用

var arr=new Array(1);

arr[0]=1;

或者使用

var arr=new Array();

arr[0]=1;

 

而不可以单独使用 var arr=new Array(1);因为这种方法只会创建数组长度为 1 的数组对象,而不能赋值,但是字符串是可以赋值成功的 var arr=new Array(“a”); 

 

六,数组对象常用的方法

1,concat 方法

     该方法返回一个新的数组,新的数组由该数组和其他元素组成,并不要求被合并的对象也是数组,可以是任意元素。

     如下给的例子:

Codefunction arrayConcat()    {      var arr1 = new Array(1, 2, 3);      var value = "javascript";      var arr2 = new Array("C#", "Java");      var arr3 = arr1.concat(value, arr2);      document.write(arr3.length + "</br>");      document.write(arr3.toString() + "</br>");    }

   输出的结果是

    6
    1,2,3,javascript,C#,Java

2,join方法

   该方法返回的是一个字符串而不是一个数组,数组中的元素由指定的分隔符分开.其使用方法为 arr.join(String),其中

   String为可选项,如果不指定分隔符,那么数组元素将以逗号分隔。

   如下例子

Code function arrayJoin()    {      var arr1 = new Array(1, 2, 3);      var value = "-";      var arr2 = arr1.join();      document.write(arr2.length + "</br>");      document.write(arr2.toString() + "</br>");    }


输出结果为:1-2-3

3,sort(fun) 方法

        对数组元素进行排序,fun排序函数为可选项,不指定排序函数,将按照ASCII表进行升序排序,如果指定fun函数,那么该函数必须返回 –1或者0或者1,-1代表第一个参数比第二个参数小,0 参数相等,1代表第一个参数比第二个参数大

Code function arraySort()    {      var arr = new Array(1, 3, 2, 0, 1, 4, 2);      arr.sort();      document.write(arr.toString() + "</br>");            arr.sort(desc);        document.writeln(arr);      document.writeln("<br>");      arr.sort(asc);        document.writeln(arr);    }    function desc(x, y)    {      if (x > y)        return -1;      if (x < y)        return 1;      if (x == y)        return 0;    }    function asc(x, y)    {      if (x > y)        return 1;      if (x < y)        return -1;      if (x == y)        return 0;    }

 

4,reverse方法

    该方法对给定的数组进行反转。

上面的方法也是经常使用的,其他方法的使用大家可以参考JavaScript使用文档或者可以到w3school查看

 

七,二维数组

用上面所给创建数组对象的方法,大家会发现只能创建以为数组,而在开发中经常会用到二维数组,比如jqgrid就会用到二维数组来展示数据,所以这时候我们就要使用JavaScript创建二维数组。思路很简单,既然是数组,我们就创建一个数组,然后再将一个数组插入到第一个数组中的元素里面。这样就可以形成二维数组,下面给出代码

Codevar arr = new Array();		for (var i = 1; i <= 10; i++) {		  arr[i] = new Array();		  for (var j = 0; j <= 10; j++) {		    aa[i][j] = i + j; 		  }		}

 

 

 

八,数组的属性

1,length 经常使用,得到数组的长度

2,propertype 返回对象原型的引用,使用这个属性我们可以对Array对象设置我们自己写的方法,比如我想让Array对象有我自己的列最大值的方法,可以使用

Codefunction array_max( )
{
  var i, max = this[0];

    for (i = 1; i < this.length; i++)
    { 
        if (max < this[i])   max = this[i];
    }  
      return max;
   }
     Array.prototype.max = array_max;
  var arr = new Array(1, 2, 3, 4, 5, 6);
  var value = x.max( );


 

对数组的就写到这里,刚开始写博客,里面如果有不妥的地方请大家指定出来或者你有更好的见解,大家可以交流,谢谢.