js书写技巧-jsvascrpt数组

数组

数组是一段线性分配的内存,主要通过整数计算偏移并访问其中元素。在其他开发语言中,数组是一个性能比较出色的数据结构。但是,在JavaScript中没有类似数据结构。

JavaScript中提供一种类似数组、具有数组特性的对象来完成其他语言中数组的功能。JavaScript中数组将下标转为字符串,作为对象的属性。这就导致JavaScript中数组比其他语言的数数据结构要慢。当然,这样的结构使用起来也比较方便,其获取与更新都与对象类似。

var narray = [0,1,2,3,4,5]
console.log(narray[3])//3
console.log(narray['3'])//3

Javacript数组长度

在JavaScript中,每个数组对象都有length属性。但是JavaScript中,数组并不是固定大小的,当读取、设置大于length原始时,不会有数组越界等异常。

var narray = [0,1,2,3,4,5];
console.log(narray[6]);//undefined
console.log(narray.length);//6
narray[6]=6
console.log(narray[6]);//6
console.log(narray.length);//7

如上代码,如果获取数组中大于length的元素,会返回undefined。但是如果设置大于length的元素,数组的length属性将自动扩展到相应长度。基于这个特性,可以很简单的实现队列入队功能。

var narray = [0,1,2,3,4,5];
console.log(narray.length);//6
narray[narray.length]=6//与narray.push类似
console.log(narray.length);//7

在JavaScript的数组中,length是可以改变的,设置更大的length不会给数组分配更多的空间,但是如果将length设置较小,则大于等于length的下标元素都将被删除。

数组删除元素

Javascript数组本质上是一个对象,可以通过delete删除其中一个属性,如:

var narray = [0,1,2,3,4,5,6,7];
delete narray[2]//[0, 1, empty, 3, 4, 5, 6, 7]
console.log(narray[2])//undefined

使用delete可以删除属性,但是会在数组中留下一个空洞,且长度未发生变化。

JavaScript提供了splice进行数组元素删除(替换)

var narray = [0,1,2,3,4,5,6,7];
narray.splice(2,1)//[2]
narray.splice(1,1,1,2)//删除第二个元素,并从第二个元素开始插入1,2两个元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值