当前位置: 代码迷 >> JavaScript >> (十)JavaScript学习笔记 - 数组
  详细解决方案

(十)JavaScript学习笔记 - 数组

热度:199   发布时间:2012-08-02 11:35:26.0
(10)JavaScript学习笔记 - 数组

一、创建

//最简单的方法就是使用数组直接量
var empty=[];
var primes=[2,3,4,5,6];
var misc=[1.1,true,"a"];

//数组直接量的值也可以是表达式
var table=[base,base+1,base+2,base+3];

//也可以包含对象或者其他数组
var b=[[1,{x:1,y:2}],[2,{x:3,y:4}]];

//未定义的元素可以通过忽略逗号直接的元素值来创建
var count=[1,,3];
var undefs=[,,];

//创建数组的另一种方法是使用 Array() 构造函数
//无参数调用
var a= new Array{};

//显式指定数组前n个元素的值
var a=new Array(5,4,3,2,1,"testing testing");

//传递一个数字参数,指定了数组的长度
var a=new Array(10);

二、遍历数组
//常用方式
var fruits=["mango","banana","cherry","pear"];
for(var i=0;i<fruits.length;i++)
{
	alert(fruits[i]);
}

//如果有未定义的元素,则需要验证下
for(var i=0;i<fruits.length;i++)
{
	if(fruits[i]) alert(fruits[i]);
}

//可以使用同样的方法来初始化Array()
var lookup_table=new Array(1024);
for(var i=0;i<lookup_table.length;i++)
{
	lookup_table[i]=i*512;
}

三、数组方法
//join()方法
//把数组中的所有元素都转换成字符串
var a=[1,2,3];
var s=a.join(); //s=="1,2,3"

//指定分隔符
s=a.join("|");  //s=="1|2|3"

//reverse()方法
//颠倒数组元素的顺序
var a=new Array(1,2,3);
a.reverse();

//sort()方法
//对数组元素进行排序,返回排序后的数组
var a=new Array["banana","cherry","apple"];
a.sort();
var s=a.join(",");  //s=="apple,banana,cherry"

//如果要要按别的顺序排序,必须将一个比较函数作为参数传递,如果第一个参数应该位于第二个参数钱,则返回一个小于0的数,后则返回大于0的数,相等返回0
var a=[33,4,111,222];
a.sort();
a.sort(function(a,b)
	{
		return a-b;
}
);

//concat()方法
//创建并返回一个数组,包含了调用方法的原数组的元素,同时将包含的参数添加到返回的数组中,但不能递归地展开数组
var a=[1,2,3];  
a.concat(4,5);	//returns [1,2,3,4,5]
a.concat([4,5]);	//returns [1,2,3,4,5]
a.concat([4,5],[6,7]);	//returns [1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]]);	//returns [1,2,3,4,5,[6,7]]

//slice() 方法
//返回的是指定数组的一个片段,两个参数指定了要返回的片段的起止点
var a=[1,2,3,4,5];
a.slice(0,3); //returns [1,2,3]
a.slice(3);	//returns [4,5]
a.slice(1,-1);	//returns [2,3,4]
a.slice(-3,-2);	//returns [3]

//splice()方法
//第一个参数指定要插入或删除的元素在数组中的位置,第二个参数指定了要从数组中删除的元素的个数,如果第二个参数省略了,那么将删除从开始元素导数组结尾处的所有元素

var a-[1,2,3,4,5,6,7,8];
a.splice(4);	//returns [5,6,7,8]; a is[1,2,3,4]
a.splice(1,2);		//returns[2,3];a is[1,4]
a.splice(1,1);		//returns[4]; a is[1]

//后面的参数指定的是从第一个参数位置插入的元素
var a=[1,2,3,4,5];
a.splice(2,0,'a','b');	//returns []; a is[1,2,'a','b',3,4,5]
a.splice(2,2,[1,2],3);	//returns ['a','b'] ; a is [1,2,[1,2],3,3,4,5]

//push()将一个或多个新元素附加到数组的尾部,返回数组的新长度
//pop() 删除一个或多个元素,返回删除的值
var stack=[];
stack.push(1,2);	//stack:[1,2] returns 2
stack.pop();	//stack:[1];returns 2

四、类似数组的对象
//给一个常规的对象添加属性使其成为一个类似数组的对象,然后遍历所得的伪数组的“元素”
var a={};
var i=0;
while(i<10){
	a[i]=i*i;
	i++;
}
a.length=i;

var total=0;
for(var j=0;j<a.length;j++){
	totl+=a[j];
}




  相关解决方案