Chinaunix首页 | 论坛 | 博客
  • 博客访问: 203133
  • 博文数量: 73
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 750
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 18:32
文章分类

全部博文(73)

文章存档

2009年(1)

2008年(72)

我的朋友

分类: 系统运维

2008-04-07 11:31:00

1,数组的创建
  1),var array=new Array()
    创建一个空数组,数组中没有任何元素。
    长度会随着元素的添加而发生变化。

var arr=new Array();//1,2.3,"test","abio"
arr.push(1);
arr.push(2);
arr.push(3);
alert (arr.length);//3
arr.push("test");
arr.push("abio");
arr.push("_flying");
alert (arr.length);//6
alert(arr[5]);

  2),var array=new Array(1,2.3,"test","abio");
    js中的数组可以包含不同类型的元素。这里创建了一个长度属性length为5的数组。
  3),var array=new Array(10);
    定义一个数组具有初始化指定的长度。数组的元素并未初始化,值为undefined
  js1.2中引入了数组直接量用于定义一个数组:
    var arr=[1,[2,3],"test"];

2,数组元素的读写
  在c++,java之类的语言中数组必须在创建时指定其长度,并且这个长度是不可变的。在js中则不是这么一回事。
  var a=new Array(3);
  for(var i=0;i  //动态改变数组的长度。
  a[a.length+1]=a.length+1;
  1),js只会给数组中实际占用了空间的索引分配内存空间。如一个数组下标从1..1000,只有索引1,1000赋值。那么js只会为这两个索引分配内存。
  2),数组元素也可以添加到对象中。
    如var circle=new Circle(2,3);
      circle[0]="this is an element of an object";

  检索数组元素(一般使用for..in循环)需要注意一个问题,就是数组中存储的元素未必是连续的,并且不一定是从下标0开始:
 
var fruits=new Array();
fruits[2]="mango";
fruits[5]="cherry";
fruits[9]="peer";
var all="Fruits: ";
for(var i=0;i     if(fruits[i]) all+=fruits[i]+" ";
}
alert(all);
#如果不是用if语句进行测试,则会出现大量的undefined
 
  将元素从数组中删除的唯一方式就是数值length属性。使用delete虽然可以将一个元素的值设为undefined,但是数组的长度并没有改变。
 
#在以上的代码中添加以下代码进行测试。
all="Fruits: ";
delete fruits[9];
for(var i=0;i    if(fruits[i]) all+=fruits[i]+" ";
}
alert(all);
alert(fruits.length);
all="Fruits: ";
fruits.length=6;
for(var i=0;i    if(fruits[i]) all+=fruits[i]+" ";
}
alert(all);
alert(fruits.length);


3,数组的常用方法
  1),array.join方法,可以指定分隔符实现数组元素的链接。与String.split方法正好相反
  [1,2,3].join(":")//返回的是“1:2:3”
  若没有指定字符串,即没有参数调用。则默认使用,作为分隔符。

  2),reverse方法
  var array=[1,2,3]
  array.reverse();
  alert(array.join());

  3),sort方法
  可以给sort方法 传入参数或者不传入参数,参数使用的是一个函数数据,用于比较两个元素的大小。若无参,则依照字母进行排序。
  var a=[33,4.1111,222]
  a.sort()//依照字母进行排序,返回的是1111,222,33,4
  a.sort(function(a,b){
    return a-b;
  })//返回4,33,222,1111
 
  4),concat方法
  var a=[1,2,3]
  a.concat(4,5)//返回[1,2,3,4,5]
  a.concat([4,5])//返回[1,2,3,4,5]
  a.concat([4,5],[6,7])//返回[1,2,3,4,5,6,7]
  a.concat(4,[5,[6,7]])//返回[1,2,3,4,5,[6,7]]

  5),slice方法
  var a=[1,2,3,4,5]
  a.slice(0,3);//返回[1,2,3]
  a.slice(3);//返回[4,5]
  a.slice(1,-1);//返回[2,3,4]
  a.slice(-3,-2)//返回[3]

  其他的方法,splice,pop/push,unshift/shift等等。pop/push,从数组尾部进行插入或者删除,而unshift/shift是从数组的开头进行插入和删除。toString,toSource方法etc
 
var arr=[1,[2,'c']];
alert("arr.toString: "+arr.toString()+"\n"+
            "arr.join: "+arr.join()+"\n"+
            "arr.toSource: "+arr.toSource()
);
#输出:
1,2,c
1,2,c
1,[2,c]


阅读(1082) | 评论(0) | 转发(0) |
0

上一篇:系列 一

下一篇:DOM-CSS

给主人留下些什么吧!~~