Javascript面向对象基础二-数组

数组

我们已经提到过, 对象是无序数据的集合, 而数组则是有序数据的集合, 数组中的数据( 元素) 通过索引(0 开始) 来访问, 数组中的数据可以是任何的数据类型. 数组本身仍旧是对象, 但是由于数组的很多特性, 通常情况下把数组和对象区别开来分别对待创建数组可以用"[]" 操作符, 或者是用Array() 构造函数来new 一个。

Js 代码

var array1 = [];  // 创建空数组  

var array2 = new Array();  // 创建空数组  

array1 = [1,"s",[3,4],{"name1":"NAME1"}]; //  

alert(array1[2][1]);  //4    访问数组中的数组元素  

alert(array1[3].name1); //NAME1  访问数组中的对象  

alert(array1[8]);   //undefined  

array2 = [,,]; // 没有数值填入只有逗号, 则对应索引处undefined

alert(array2.length); //3  

alert(array2[1]);     //undefined  

var array1 = [];  // 创建空数组

var array2 = new Array();  // 创建空数组

array1 = [1,"s",[3,4],{"name1":"NAME1"}]; //

alert(array1[2][1]);  //4   访问数组中的数组元素

alert(array1[3].name1); //NAME1 访问数组中的对象

alert(array1[8]);   //undefined

array2 = [,,];  // 没有数值填入只有逗号, 则对应索引处的元素为undefined

alert(array2.length); //3

alert(array2[1]);     //undefined

  new Array() 来创建数组时, 可以指定一个默认的大小, 其中的值此时为undefined, 以后可以再给他们赋值. 但是由于javascript 中的数组的长度是可以任意改变的, 同时数组中的内容也是可以任意改变的, 因此这个初始化的长度实际上对数组没有任何的约束力. 对于一个数组, 如果对超过它最大长度的索引赋值, 则会改变数组的长度, 同时会对没有赋值的索引处赋值undefined, 看下面的例子.

Js 代码

var array = new Array(10);  

alert(array.length);   //10  

alert(array[4]);       //undefined  

array[100] = "100th";  // 这个操作会改变数组的长度, 同时将10-99 索引对应的值设为undefined  

alert(array.length);   //101  

alert(array[87]);      //undefined  

var array = new Array(10);

alert(array.length);   //10

alert(array[4]);       //undefined

array[100] = "100th";  // 这个操作会改变数组的长度, 同时将10-99 索引对应的值设为undefined

alert(array.length);   //101

alert(array[87]);      //undefined

  可以用delete 操作符删除数组的元素, 注意这个删除仅仅是将数组在该位置的元素设为undefined, 数组的长度并没有改变.
我们已经使用过了数组的length 属性,length 属性是一个可以读/ 写的属性, 也就是说我们可以通过改变数组的length 属性来任意的改变数组的长度. 如果将length 设为小于数组长度的值, 则原数组中索引大于length-1 的值都会被删除. 如果length 的值大于原始数组的长度, 则在它们之间的值设为undefined.

Js 代码

var array = new Array("n1","n2","n3","n4","n5");  // 五个元素的数组  

var astring = "";  

for(var i=0; i<array.length; i++) {           // 循环数组元素  

    astring += array[i];  

}  

alert(astring);       //n1n2n3n4n5  

delete array[3];                   // 删除数组元素的值  

alert(array.length + "_" + array[3])  //5_undefined   

array.length = 3;    // 缩减数组的长度  

alert(array[3]);     //undefined  

array.length = 8;    // 扩充数组的长度  

alert(array[4]);     //undefined  

var array = new Array("n1","n2","n3","n4","n5");  // 五个元素的数组

var astring = "";

for(var i=0; i<array.length; i++) {           // 循环数组元素

    astring += array[i];

}

alert(astring);       //n1n2n3n4n5

delete array[3];                   // 删除数组元素的值

alert(array.length + "_" + array[3])  //5_undefined

 

array.length = 3;    // 缩减数组的长度

alert(array[3]);     //undefined

array.length = 8;    // 扩充数组的长度

alert(array[4]);     //undefined

  对于数组的其他方法诸如join/reverse 等等, 在这就不再一一举例.
通过上面的解释, 我们已经知道, 对象的属性值是通过属性的名字( 字符串类型) 来获取, 而数组的元素是通过索引( 整数型 0~~2**32-1) 来得到值. 数组本身也是一个对象, 所以对象属性的操作也完全适合于数组.

Js 代码

var array = new Array("no1","no2");  

array["po"] = "props1";  

alert(array.length);   //2  

// 对于数组来说,array[0]array["0"] 效果是一样的alert(array[0] + "_" + array["1"] + "_" + array.po);//no1_no2_props1  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值