JS巧用length属性增删数组

JavaScript 2012-07-31 JavaScript,数组,length

在JS中可以利用length计算数组元素个数,但length并不是只读的,通过改变length的值可以实现数组的增删功能。

var arr = ['琼台博客','www.qttc.net','WEB技术'];
alert(arr.length);

结果

JS的length

声明了一个数组arr,分别给了三个元素。分别是

arr[0] = 琼台博客

arr[1] = www.qttc.net

arr[2] = WEB技术

一共三个元素

我们来打印结果看看

var arr = ['琼台博客','www.qttc.net','WEB技术'];
var str = '';
for(var i=0;i<arr.length;i++){
	str += '第'+i+'个元素 arr['+i+'] = '+arr[i]+ '\n';
}
alert(str);

结果

JS的length

数组arr的length元素值是三个,我们把length的值改成2

var arr = ['琼台博客','www.qttc.net','WEB技术'];
arr.length = 2;
alert(arr.length);

结果

JS的length属性

发现length的值是可以改写的,那么我们再来打印一下结果

var arr = ['琼台博客','www.qttc.net','WEB技术'];
arr.length = 2;
var str = '';
for(var i=0;i<arr.length;i++){
	str += '第'+i+'个元素 arr['+i+'] = '+arr[i]+ '\n';
}
alert(str);

结果

JS中的length属性

我们发现,把arr的length值改写成2以后,数组的元素就只有两个了,分别是

arr[0] = '琼台博客'

arr[1] = 'www.qttc.net'

那么原来的arr[2]已经变成undefined,如下代码

var arr = ['琼台博客','www.qttc.net','WEB技术'];
arr.length = 2;
alert('第三个元素 arr[2] = '+arr[2]);

结果

JS中的length属性

根据以上例子,arr共三个元素,length的值是3,我们把arr的length值改成4看看。

var arr = ['琼台博客','www.qttc.net','WEB技术'];
arr.length = 4;
var str = 'arr.length = '+arr.length +'\n';
for(var i=0;i<arr.length;i++){
	str += '第'+i+'个元素 arr['+i+'] = '+arr[i]+ '\n';
}
alert(str);

结果

JS的length属性

我们发现arr数组的length值由3改成4并不报错,并且第四个元素arr[3]的值是undefined

由此我们得出以下结论

数组length属性是可以改变的

如果设置length值比原数组length值小就等于删除数组末尾元素的效果,记住是末尾元素

如果设置length值比原数组length值大就等于在数组末尾添加元素的效果,记住是末尾添加,并且新添加元素的值默认都是undefined

文字链接:《JS巧用length属性增删数组

文章地址:http://www.qttc.me/201207150.html

除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源

乳名?小名?昵称?网名?均可

email,放心,我不会给你乱投广告的

想获得回访就把你的站点URL写上(没有留空)

[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法

Comments 2

  • 印象中JS里面length可以理解为字符串的长度吧?
    2012-07-31 10:34:27 [ 跟帖 ]
    相对于字符串,他是字符个数;相对于数组,它是数组元素个数;相对于对象,它是对象长度
    2012-07-31 11:21:45 [ 跟帖 ]
    1 #