JavaScript|伪数组
技术频道
每⽇头条
5天前
2017-03-21
[ ⽂章导读 ] HTML5学堂(码匠):熟悉JavaScript的⼈对ElementsByTagName再熟悉不过,对arguments也多有⽿闻,我们时常针对其进⾏遍历,通过数组下标进⾏访问,但是它们却是数组中的“冒牌货”,⼀起来看今天要说的“伪数组”。何为伪数组伪数组(类数组): ...html document是什么
HTML5学堂(码匠):熟悉JavaScript的⼈对ElementsByTagName再熟悉不过,对
arguments也多有⽿闻,我们时常针对其进⾏遍历,通过数组下标进⾏访问,但是它们却是数组中的“冒牌
货”,⼀起来看今天要说的“伪数组”。
何为伪数组
伪数组(类数组):⽆法直接调⽤数组⽅法,也⽆法使⽤length属性实现什么特殊的⾏为,但是!可以使⽤真正数组遍历的⽅法(for循环配合数组下标)来遍历它们。
说的浅显⼀些,就是:存在着length属性,可以通过数组下标的⽅式进⾏每个元素的访问,但是不能够使⽤push等数组的⽅法。
常见的伪数组
arguments参数:arguments是⼀个对象,⽽⾮⼀个数组。
调⽤ElementsByTagName、getElementsByClassName等各类获取元素的⽅法。这些⽅法返回的是⼀个NodeList(节点列表),也并不是⼀个数组。
将伪数组转换为数组
可以使⽤Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。
数组转换的实例
伪数组情况下,使⽤push⽅法
HTML5学堂(码匠) – 数组转换的实例
控制台会报出错误:Uncaught TypeError: contents.push is not a function
使⽤slice进⾏了转换,将伪数组转换成数组之后
HTML5学堂(码匠) – 数组转换的实例
此时控制台返回的内容就成了[span, span, span, “h5course”]
为何能够使⽤slice实现转换呢?
slice( )⽅法,是基于当前数组中的⼀个或多个项,创建⼀个新数组,并返回新数组。
concat( )⽅法,是基于当前数组中的所有项创建⼀个新数组,返回新数组。
不过这两种⽅法在这⾥的表现并不完全相同。
slice⽅法,返回的内容如上,三个span元素与”h5course”是同级的。
concat⽅法,使⽤时代码为:contents = at.apply(contents);控制台返回的内容为:[HTMLCollection[3], “h5course”]。换句话说,将三个span元素作为了⼀个单独的数组⽽存放。
HTML5学堂(码匠) – weixin.mj216/
学堂控制台数组⽅法遍历
相关⽂章
互联⽹公司中 Java 基础⾯试题集锦
JAVA中的集合之HashMap集合
Javascript基础03
算法练习题——N进制转M进制和数组中第⼀个未出现的最⼩正整数
职场中这⼏个⽅法,就像做⽕箭⼀样!
30+的⼈学Java,⽅法中的术语

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。