码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript数组

时间:2015-12-21 00:16:34      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

何为数组:

所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

技术分享

在JS中除了Object类型以为,我们用的最多的应该就是数组了。而且JS数组和其他大多数语言中的数组有着很大的区别。在Java语言中,我们声明了一个数组,那么这个数组只能保存相同类型的值,集合数组也是一样;而在我们的JS数组中的每一项都可以保存任何数据,也就是说我们的JS数组第一个位置可以用来保存字符串,第二个位置可以用来保存数值,第三个位置可以用来保存对象。并且JS的数组是动态调整的,有点类似于Java的集合数组(List);会随着数据的增加而扩大数组的容量;

1、数组的创建                                                                                                                                                    

     var array = new Array(); //创建一个数组
<span style="white-space:pre">	</span>var array = new Array([2]); //创建一个数组并指定长度,注意不是上限,是长度
	var array = new Array([1,'字符串',new Object()]); //创建一个数组并赋值,对应的是数字,字符串,对象
	alert(array);
2.检测数组

     array instanceof Array; //返回结果为布尔值
	Array.isArray(array); //返回结果为布尔值,只支持IE9,谷歌,火狐能
3.数组的转换

var person1={
		toLocaleString :function(){
			return "Nikolaos";
		},
		toString:function(){
			return "NiCholas";
		}
	};
	var person2= {
		toLocaleString :function(){
			return "Grigorios";
		},
		toString:function(){
			return "Greg";
		}
	};
	var people=[person1,person2];
	alert(people);
	alert(people.toString());
	alert(people.toLocaleString());
数组转换成字符串可以使用toStirng,valueOf,toLocaleString,Join;

4操作方法

4.1数组的元素的访问

1 var testGetArrValue=arrayObj[1]; //获取数组的元素值
2  
3 arrayObj[1]= "这是新值"//给数组元素赋予新的值

4.2数组元素的添加

1 arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度
2  
3 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
4  
5 arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

4.3数组元素的删除

1 arrayObj.pop(); //移除最后一个元素并返回该元素值
2  
3 arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
4  
5 arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

4.4数组的截取和合并

1 arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
2  
3 arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

5.栈方法

JS数组也提供了一种让数组的行为类似于其他数据结构的方法,数组表现的就像栈一样。栈是一种可以限制插入和删除项,后进先出的数据结构,也就是最新添加的项最早被移除。而栈中项的插入(推入)和移除(弹出)。只发生在栈顶。JS为数组专门提供了push()和pop()方法,以便实现类似栈的行为;

var names=["张三","李四"];
	names.push("王五");	//添加另一项
	names[3]="赵六" //添加一项
	alert(names.length); //4
	var item=names.pop(); //去的最后一项
	alert(item);

6.队列方法

栈数据结构的访问规则是后进先出,而队列的数据结构的访问规则是先进先出。队列在列表的末端添加项,从列表的前端移除项。

var names=["张三","李四"];
	names.push("王五");	//添加另一项
	names[3]="赵六" //添加一项
	alert(names.length); //4
	var item=names.shift(); //取得第一项
	alert(item);
7.重排序方法

var values=[4,2,5,7,1];
	alert(values.sort()); //sort正序
	alert(values.reverse()); //reverse倒序
8.位置方法

位置方法splice()方法,这个方法是最强大的数组方法了,它有很多种用法。splice()的主要用途是向数组的中部插入项,但使用这种方法的方式有三种;

删除:可以删除任意数量的项,只需指定2个参数:要删除的起始位置和要删除的项数,例如 

splice(0,2)会删除数组中的前两项

插入:可以向指定位置插入任意数量的项,只需提供3个参数,起始位置0(要删除的项数)和要插入的项,如果要插入多个项,可以再传入第四,第五,以致任意多个项,例如splice(2,0,"张三三","李四四")会从当前数组的位置2开始插入

替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3个参数:起始位置,要删除的项数和要插入的任意数量的项,插入的项数不必与删除的项数相等。例如splice(2,1,"张三三","李四四")会删除当前数组位置2的项,然后再从位置2开始插入字符串;

后面还有更深入的迭代和缩小方法,留着下次讨论;







JavaScript数组

标签:

原文地址:http://blog.csdn.net/liaodehong/article/details/50365872

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!