购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.16 数组方法

“首先是push方法,它可以把一个元素添加到数组里面。把数组想象成一个长长的盒子,我如果想要给数组添加新的元素,就可以用这个方法。”说着,叶小凡打出一段代码。

     var b = new Array(8);
     b.push("苹果");
     b.push( "香蕉");
     b.push( "牛油果");
     console.log( b);

运行结果如图1-8所示。

图1-8 运行结果

“如果直接用push方法,那么元素就会被添加到数组的尾部,而且原来的8个位置无法占用,会直接跟在后面。”

“怎么会这样?那前面的8个位置难道就没有用了吗?这样岂不是很浪费?”对面的弟子大感不解。

“用push方法确实没有办法做到,但是要想利用前面8个位置,还是有办法的,那就是用数组本身写一个数据,比如这样。”说着,叶小凡打出了一段代码。

运行结果如图1-9所示。

图1-9 运行结果

“大家请看, 数组本身有写数据的能力,只要给数组变量加上一对中括号,然后在中括号里面写上对应的下标位置,就可以给对应的内存空间塞入数据啦 。”

“当然,如果我要修改某一个位置的数据,也可以用同样的方法。”说着,叶小凡打出了一段代码。

运行结果如图1-10所示。

图1-10 运行结果

“像这样,在下标位置相同的地方重复赋值,就可以修改数组元素啦。”

“那怎么才能删除数组中的某一个数据呢?”对面的弟子又问道。

“删除数据需要用到数组的splice方法或者pop方法。”叶小凡想了一会,坚定地说道,“先说pop方法,这个方法可以删除数组尾端的元素。”说着,叶小凡打出了一段代码。

运行结果如图1-11所示。

图1-11 运行结果

“很显然,刚才数组的最后一个位置的元素是‘牛油果’,但是现在已经没有了。pop方法会默认删除数组中的最后一个元素。可以这么认为, 先进入数组的后删除,后进入数组的先删除 。刚才我说到,删除数组元素的方法有两种,pop方法只是其中一种,还有第二种,就是splice方法。 splice方法的作用是插入 删除或者替换数组元素 ,它不仅会在原有的数组上进行修改,还会返回被处理的内容,因此这是一个功能强大但不容易使用的方法。 splice方法用前两个参数进行定位,余下的参数表示插入部分 。”

“什么叫用前两个参数进行定位?”

“比如我现在有一个数组[1,2,3,4,5],splice方法的第一个参数代表需要操作的数组的起始位置,比如你要删除数组中的某一个元素,那么你必须确定从数组中第几个元素开始删除,因为数组的下标位置默认从0开始,所以假如要删除数字3,就需要从数组下标为2的地方开始删除。然后,splice方法的第二个参数代表要删除元素的个数,如果我只删除一个数字3,那么只需要在第二个参数的位置填入1即可。”说着,叶小凡打出了一段代码。

     var a = [1,2,3,4,5];
     a.splice(2,1);
     console.log(a);

运行结果为[1,2,4,5 ]。

“如果我要删除3和4两个数字,则需要把第二个参数替换成2就可以啦。”

     var a = [1,2,3,4,5];
     a.splice(2,2);
     console.log(a);

结果为[1,2,5 ]。

“那如果要把数字3替换成数字38,并且再在38的后面加一个元素66,又该咋办?”对面的弟子又问道。

“那也简单,我刚才说了,splice方法用前两个参数进行定位,余下的参数表示插入部分。要把3替换成38,思路就是先把3删掉,然后在后面加上一个38就可以了。如果后面还要加66,则再多写一个参数66。”说着,叶小凡打出了一段代码。

     var a = [1,2,3,4,5];
     a.splice(2,1,38,66);
     console.log(a);

运行结果为[1,2,38,66,4,5 ]。

全场寂静,谁都难以想象,叶小凡不过是一个新人,竟然能够对数组有这么高深的理解,这掌握得岂止是全面了?

过了好一会儿,对面的弟子似乎不甘心,又问:“我以前见过有的师兄把数组转换成了一种字符串,你会吗?”

“你说的是数组的join方法吧,join方法可以把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的,而这指定的分隔符就是join方法的参数。比如,我可以把数组里面的所有元素转换为用逗号分隔的字符串。”说着,叶小凡打出了一段代码。

     var arr = [1,2,3];
     var str = arr.join(",");
     console.log(arr);

运行结果:1,2,3。

正当叶小凡还要介绍数组的其他方法时,林元青淡淡地说了一句:“可以了,这一局,叶小凡胜!”

叶小凡三局连胜,进入决赛! 67I/GaeDyjZp8fM7B0oRuUD90MUGsAdPUqc2ciAYsR2L2CxxyyIxV/QMhIEA1wR9

点击中间区域
呼出菜单
上一章
目录
下一章
×