网站地图    收藏   

主页 > 前端 > javascript >

javascript数组的使用说明

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 在js中数组有很多种操作,包括有数组创建,排序,长度,取值,删除,访问等等各种数据操作方法,下面我来总结一下js数组操作,有需要了解的朋友可参考。...

js数组的定义:

 代码如下 复制代码

方法1.

var mycars=new Array()
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

方法2.

定义和初始化一起:

var mycars=new Array("Saab","Volvo","BMW")

或者另一种写法:

var mycars=["Saab","Volvo","BMW"];


2、数组的元素的访问

 

 代码如下 复制代码

 

var testGetArrValue=arrayObj[1]; //获取数组的元素值

arrayObj[1]= "这是新值"; //给数组元素赋予新的值
 

 

3、数组元素的添加

 

 代码如下 复制代码

 

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度

arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度

arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

 

 

4、数组元素的删除

 

 代码如下 复制代码

 

arrayObj.pop(); //移除最后一个元素并返回该元素值

arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移

arrayObj.splice(deletePos,deleteCount);


//删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

 

5、数组的截取和合并

 

 代码如下 复制代码

 

arrayObj.slice(start, [end]);

//以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);

//将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
 

 
6、数组的拷贝

 

 代码如下 复制代码

 

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向

arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

javascript二维数组:

javascript用一维数组来模拟二维数组:

方法1.

var   arr   =   new   Array(['a','b','c'],['d','e','f']);    
arr[0]返回第一个一维数组,arr[0][0]返回第一个一维数组的第一个元素'a',下同。

方法2.

arr=new   Array();  
for(i=0;i<100;i++) {  
     arr[i]=new   Array(...);  
}

方法3.

var  arr=new   Array(  
  new   Array(),  
  new   Array(),  
  new   Array()  
  );

 

数据查找最大值


代码

 代码如下 复制代码

function 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 x = new Array(1, 2, 3, 4, 5, 6);

var y = x.max();


数组长度:

javascript的数组不需要设定长度,会自己进行扩展,数组名.length返回元素个数

代码

 代码如下 复制代码

var arr=[12,23,5,3,25,98,76,54,56,76];

//定义了一个包含10个数字的数组

alert(arr.length); //显示数组的长度10

arr.length=12; //增大数组的长度

alert(arr.length); //显示数组的长度已经变为12

alert(arr[8]); //显示第9个元素的值,为56

arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃

alert(arr[8]); //显示第9个元素已经变为"undefined"

arr.length=10; //将数组长度恢复为10

alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"

常用函数:

数组常用函数

toString():把数组转换成一个字符串
toLocaleString():把数组转换成一个字符串
join():把数组转换成一个用符号连接的字符串
shift():将数组头部的一个元素移出
unshift():在数组的头部插入一个元素
pop():从数组尾部删除一个元素
push():把一个元素添加到数组的尾部
concat():给数组添加元素
slice():返回数组的部分
reverse():将数组反向排序
sort():对数组进行排序操作
splice():插入、删除或者替换一个数组元素

 

javascript 数组排序:

arrayobj.sort(sortfunction)

参数

arrayObj
    数组
sortFunction
    可选项。比较函数。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
     比较函数必须返回下列值之一:

    * 负值,如果所传递的第一个参数比第二个参数小。
    * 零,如果两个参数相等。
    * 正值,如果第一个参数比第二个参数大

举例:

 代码如下 复制代码

var testArray=[1,5,2,3,6,4]
testArray.sort(function(a,b){return a-b;});
alert(testArray);

数组使用方法汇总

 代码如下 复制代码


<script language="javascript">

 /*
 由于javascript是一种无类型语言,所以一个数组的元素可以具有任意的数据类型,同一个数组的不同元素
 可以具有不同的类型,数组的元素设置可以包含其他数组,这样就可以创建一个复杂的数组了.
 并且在这点上说javascript作为一种脚本语言不同于那种严格的面向对象的c++.c#,java了.具有更高的灵活性.
 */

 /*
 *在javascript1.1和其后的版本中,数组是用构造函数Array()和运算符new来创建,
 可用以下的三种方式来创建javascript 中的数组.
 */
 var a=new Array();
 var b=new Array(5,4,3,"first","test,string");
 var c=new Array(20);

 a[1.23]="test";
 document.write("a[1.23]="+a[1.23]);
 //相信每位从强类型的编程语言学习javascript时,绝对会以为上面这种操作感到惊讶,
 //float数据也作数组的下标了,事实上                       并非如您所想       
 //javascript在您是用负数,浮点数,(或布尔型,对象,其他值时),javascript会将它转换为一个字符串
 //用生成的字符串作为对象的属性名字,而不是定义了一个新的数组元素
 //上面的实例事实就是为a 创建了一个名为:"1.23"的属性.
 document.write("a.length="+a.length);
 document.write("b.length="+b.length);
 document.write("c.length="+c.length);

 a[3]="Test";
 document.write("<br />a[3]="+a[3]);
 document.write("<br/>a.length="+a.length);
 //以上测试也很明确我们用整数作为数组的下标是才会真正为数组添加一个元素,
 //这里用数组的长度来体现了javascript的数组中的奥妙。


 //通过设置数组的length属性能过截断数组的长度。
 a.length=3;
 if (a[3]==undefined)
 {
  document.write("<br />在a.length="+a.length+"后,a[3]="+a[3]);
 }
 else
 {
    document.write("<br />在a.length="+a.length+"后,a[3]="+a[3]);
 }

 //这里测试我们的多维数组元素
 /*
 *javascript中实际上是不支持多维数组
 *但是我们将一个一维数组的元素再赋给其一个一维数组,这样就看起来就实现了多维数组了,但
 实际上他还是个一维数组,这和我们理解c语言的数组时的那种想法一样,但他们的实现机制是不一样的。
 */
 var g=new Array(3);
 g[3]=a;
 g[3][2]="Test"
 document.write("<br />g[3][2]="+g[3][2]);
 
  //数组join()方法
  for (var i=0;i<20 ;i++ )
  {
 c[i]=i;
 document.write("<br />c[i]="+c[i]);
  }
  document.write("<br/>c的元素join()方法后是:"+c.join());
  //数组的reverse()方法
  c.reverse();
  document.write("<br />c的元素在reverse()方法再join()后的结果是:"+c.join("|"));

  //concat()方法的测试
  var h=new Array(1,2,3);
  h= h.concat([4,5]);
  //但是concat函数不会递归地展开一个元素为数组的数组。
  h=h.concat(6,7,[9,[10,20]]);
  document.write("<br />h.length="+h.length+"<br />"+h);
  document.write("h[8]="+h[8]);


  //slice()方法
  document.write("<br>h.slice(4,5)="+h.slice(4,5));
document.write("h.slice(5,9)="+h.slice(5,9))
//slice()方法:返回的数组包含有第一个参数指定的元素和那个元素开始到第二个参数指定的
//元素为止的元素但不包含第二个参数所指定的元素。


//splice()方法
//splice()方法是插入或删除数组元素通用的方法。
/*
splice函数第一个参数指定了要插入或删除的元素在数组中的位置。
第二个参数指定了要从数组中删除的元个数
在第二参数之后可以有任意多个参数,它们指定的是从第一个参数指定的位置处插入的元素。
第一个元素及后续元素,做出相应的移动。
*/

document.write("<br />h.splice(8,1)后的h为::"+h.splice(8,1));
//document.write("<br />h.splice(8,0,'a','b','Test')后的h为::"+h.splice(8,0,'a','b','Test'));
h.splice(7,0,'a','b','Test');
document.write("<br />h.splice(7,0,'a','b','Test')后的h为:"+h);


//javascript中的数组作为堆栈时和php类似
//这点有趣更有用。
//以下是作为堆栈是使用的小实例
/*
push方法是将一个或多个新元素附加到数组的尾部,然后返回数组的新长度。
pop将删除数组的最后一个元素,坚守数组的长度,返回他删除的值。
*/
var stack=new Array();
stack.push(1,2);
document.write("<br>stack的元素是:"+stack);
document.write("<br />stack.length="+stack.length);
document.write("<br>stack.pop()返回的结果是:"+stack.pop());
document.write("<br />stack.length="+stack.length);

//以下是作为队列使用的小实例
/*
unshift方法将一个或多个元素添加到数组元素的头部,然后把已有的元素移动到下标最大的位置已腾出空间
,它返回的是主族的新长度。
方法shift是删除并返回数组的第一个元素,然后将后面的所有元素都向前移动以填补第一个元素留下的空白。
*/
var list=[];
list.unshift(6,2);
document.write("<br >list的内容为:"+list);
document.write("<br>list的shift方法是:"+list.shift());

//此外就剩下,我们在java中熟悉的toString()方法 了
//It's a piece of cake!
document.write(c.toString());
//说白了,其实数组的toString()方法和无参数的join()的效果是完全相同
//OK,this's chapter for Array,that's all!

</script>

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论