首页 > 其他 > 详细

引用类型之Array(一)

时间:2020-10-07 13:10:08      阅读:44      评论:0      收藏:0      [点我收藏+]

Array类型

除了Object之外,Array类型在ECMAScript中也很常用。ECMAScript中的数组与其他多数语言中的数组有着相当大的区别。ECMAScript数组的每一项可以保存任何类型的数据。也就是说,可以用数组第一个位置来保存字符串,用第二位置来保存数值,用第三位置来保存对象,以此类推。而且ECMAScript数组的大小是可以动态调整的,即可以随着数据添加自动增长以容纳新增数据。

语法

创建数组的基本方式有两种。第一种是使用Array构造函数,代码如下

var colors=new Array();

如果预先知道数组要保存的项目数量,也可以给构造函数传递该数组,而且该数值会自动变成length属性的值。例如,下面的代码将创建length值为20的数组

var colors=new Array(20);

也可以向Array构造函数传递数组中应该包括的项。

//以下代码创建了一个包括三个字符串值得数组
var colors=new Array("red","blue","pink")

给构造函数传递一个值也可以创建数组,如果传递的是数值,那么就会创建length为这个数值的数组,如果传递的是其他类型的参数,则会创建包含那个值的只有一项的数组。例子如下

var colors=new Array(3);        //创建一个包含3项的数组
var names=new Array("breeze");	//创建一个包含1项,即字符串"breeze"的数组

另外,在使用Array构造函数时也可以省略new操作符,如下

var colors=Array(3);
var names=Array("breeze");

创建数组的第二种基本方法是使用数组字面量表司法。数组字面量由一对包括数组项的方括号表示,多个数组项之间以逗号隔开,如下所示

var colors=["red","blue","green"];
var names=[];

读取和修改

使用方括号并提供响应值的基于0的数字索引,如下所示:

var colors=["red","blue","green"];
alert(colors[0]);   //"red"
colors[2]="black";  //修改第三项
colors[3]="white";  //增加第四项

方括号中的索引表示要访问的值。如果索引小于数组中的项数,则返回对应项的值,所以colors[0]会返回"red"。设置数组的值也使用同样的语法,但会替换原来的值。如果索引数超过数组长度,则是新增。

数组的length属性

数组的项数保存在length属性中,这个属性始终会返回0或更大的值,如下面这个例子所示:

var colors=["red","blue","pink];  //创建一个包括3个字符串的数组
var names=[];                     //创建一个空数组

alert(colors.length);     //3
alert(names.length);      //0

数组的length属性很有特点—— 它不是只读的。因此,通过设置这个属性,我们可以从数组的末尾移除或向数组中添加新项。请看下例

var colors=["red","blue","pink"];      //创建一个包括3个字符串的数组
colors.length=2;
alert(colors[2]);              //undefined

这个例子中的数组colors一开始有三个值。将其length属性设置为2会移除最后一项,结果再访问colors[2]就会显示undefined了。如果将length属性设置为大于数组项数的值,则新增的每一项都会取得undefined,如下

var colors=["red","blue","pink"];      //创建一个包括3个字符串的数组
colors.length=4;
alert(colors[3]);         //undefined 

虽然colors数组包括3个项,但把它的length属性设置成了4。这数组不存在位置3,所以访问这个位置的值就得到了特殊值undefined。

利用length属性也可以在数组末尾添加新项,如下

var colors=["red","blue","pink"];
colors[colors.length]="black";   //在位置3添加新项
colors[colors.length]="white";   //在位置4添加新项

原理:由于数组的最后一项的索引都是length-1,因此新项的下一个位置都是length这个值。

当把一个值放在超出当前数组大小的位置上时,数组就会重新计算长度,即长度值等于最后一项的索引加1,如下

var colors=["red","blue","pink"];
colors[99]="black";
alert(colors.length);  //100

在这个例子中,我们向colors数组的位置99插入了一个值,结果数组新长度length就是100(99+1)。而位置3到位置98实际上都是不存在的所以我们访问它们都将返回undefined

引用类型之Array(一)

原文:https://www.cnblogs.com/yipingweifeng/p/13776877.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!