数组的相关知识

javascript中的数组是无类型的,也就是说数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同类型。数组元素甚至可以是对象或其他数组,这样可以利用数组创建复杂的数据结构,如对象的数组和数组的数组。

下面从头开始看javascript数组有什么特点:

var array1=[1,,2];//数组有3个元素,中间的那个元素值为undefined
var array2=[,,];//数组有2个元素,都是undefined

因为数组直接量的语法允许有可选的结尾的逗号,所以只有2个元素而不是三个。

创建数组的几种方式:

1、数组字面量方法

var array=[1,,2];

这种形式就是数组字面量法。一般是使用这种方法创建数组。

2、构造函数法

1 // 调用时没有参数
2 var array=new Array();
3 // 该方法创建一个没有任何元素的空数组,等同于数组字面量[]
4 // 调用时有一个数组参数,指定长度
5 var array=new Array(10);
6 // 此时数组中没有存储任何值,没有存储任何值,没有存储任何值,连索引也没有
7 // 还可以这样创建
8 var array=new Array(1,2,3,4);
9 // 同数组字面量方法一样,但没有数组字面量方法简单

javascript中有一种特殊的数组叫稀疏数组。

稀疏数组就是包含从0开始的不连续索引的数组。通俗点说就是本来数组中连续的索引都有值,但是稀疏的某个索引上可能没有值,造成了数组中实际存储的元素个数<length-1;

注意:

在数组字面量中省略值时不会创建稀疏数组,因为省略的值为undefined。

 

关于数组长度length一些值得注意的地方:

1、如果为一个元素赋值,它的索引 i 大于或等于现有数组的长度时,length属性的值将设置为 i+1;

2、设置Length的属性为一个小于当前长度的非负整数 n 时,当前数组中那些索引大于或等于n 的元素将从中删除;

1 a=[1,2,3,4,5];
2 a.length=3;//1,2,3
3 a.length=0;//什么都没有了
4 a.length=6;//1,2,3,4,5,undefined

在ECMAScript5中,可以用Object.defindProperty()让数组的length属性变成只读的:

1 a=[1,2,3];
2 Object.defineProperty(a,"length",{
3     writable:false
4 });
5 a.length=0;//a不会改变

数组元素的添加和删除:

添加:

1、为新索引赋值:

a=[];
a[0]=1;
a[1]=2;

2、使用push()方法:每次在数组的尾部添加元素

a=[];
a.push(1);
a.push(1,2);

可以使用delete删除数组中的一个元素,但是,对一个数组元素使用delete不会修改数组的length属性。如果从数组中删除一个元素,它就会变成稀疏数组。

还有一些关于数组的方法:

pop():返回数组的最后一项;

shift():移除数组中的第一项并返回该项;

unshift():在数组前端添加任意个项并返回新数组的长度。

转载于:https://www.cnblogs.com/luxueping/p/5593523.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值