首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解NodeList 和 HTMLCollection 和 Array

用一遍就知道: entries(): 调用entries方法会返回一个iterator(迭代器),关于iterator/iterable可以参见MDN,简单点说就是返回了一个可以遍历的对象,而这个对象实现了...iterable protocal,所以需要用for...of遍历,所以我们可以: var divs = document.querySelectorAll('div'); for(var item of...keys(): 返回一个iterator用于遍历NodeList的key: var divs = document.querySelectorAll('div'); for (var key of list.keys...values(): 和keys()类似,返回一个iterator用于遍历NodeList的value,即html元素: var divs = document.querySelectorAll('div...通过对NodeList的研究我们发现,NodeList和Array没有继承关系,但是都有length属性和forEach方法,而且拥有几个特有的方法,主要都是用来遍历和取值用的。

2.3K40

JavaScript 学习-28.元素与节点(HTMLCollection 和 NodeList)

为什么有时候返回HTMLCollection ,有时候返回NodeList? HTMLCollection 和  NodeList 的区别又是什么?带着这些问题进入本篇的学习。...DOM提供两种集合对象,用于实现这种节点的集合:NodeList和HTMLCollectionHTMLCollection 是表示 HTML 元素的集合。...对象 HTMLCollection只能包含 元素节点(ElementNode)类型的节点, 以下方法返回HTMLCollection对象 document.getElementsByClassName...HTMLCollection.namedItem(name) 或 HTMLCollection[name] 使用示例,以下两种方法都可以 // namedItem 根据id 或name属性取值 console.log...与NodeList区别 HTMLCollection 是表示 HTML 元素的集合,元素也是节点的一种,也就是元素节点,NodeList 是表示节点的集合 我们可以理解为 HTMLCollection

1.4K21
您找到你想要的搜索结果了吗?
是的
没有找到

【春节日更】小技巧 — 如何将类数组转成数组

Array.prototype.push, splice : Array.prototype.splice } 注:若类数组对象没有写push方法,则调用时即会报错 常见的类数组有 arguments 和 HTMLCollection...arguments); } var list1 = list(1, 2, 3); // [1, 2, 3] 方法二: Array.from() 是ES6中新增的方法,可以将两类对象转为真正的数组:类数组对象和可遍历...'1':'b', '2':'c', length:3 }; var arr = Array.from(arrayLike);//['a','b','c'] //demo2 // 把HTMLCollection...同样是ES6中新增的内容,扩展运算符(…)也可以将某些数据结构转为数组 //arguments对象的转换 function list(){ return [...arguments]; } //HTMLCollection...对象的转换 [...document.getElementsByTagName('p')] 扩展运算符实际上调用的是遍历器接口,如果一个对象没有部署此接口就无法完成转换

60710

通过几个事例,就可以说明 for...of 循环在 JS 是不可或缺

类似数组遍历 for...of 除了可以遍历对象外,还可以遍历类似数组的对象。 arguments是函数体内的特殊变量,表示包含函数的所有参数,arguments 也是一个类似数组对象。...字符串字符的遍历 JavaScript 中的原始类型字符串是可迭代的。因此,我们可以轻松地遍历字符串的字符。...遍历普通 JavaScript 对象 遍历普通 JS 对象的属性/值对总是很痛苦的。...然后,对于for...of循环,遍历元组,并将每个元组解构const [prop,value]。 7.遍历 DOM 集合 你可能知道在 DOM 中使用HTMLCollection是多么令人沮丧。...因为HTMLCollection是一个类似数组的对象(而不是一个常规数组),所以我们不能使用常规数组方法。 例如,每个 DOM 元素的children属性都是HTMLCollection

1K50

遍历

前序遍历 前序遍历(DLR),是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。...(2)前序遍历左子树。 (3)前序遍历右子树 。 ? 前序遍历 需要注意的是:遍历左右子树时仍然采用前序遍历方法。...如右图所示二叉树 前序遍历结果:ABDECF 已知后序遍历和中序遍历,就能确定前序遍历。 中序遍历 中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游。...在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。...后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后遍历根结点。

1.3K10

图的遍历 --- 深度优先遍历

在讲深度优先遍历之前,先来回顾一下图这种数据结构。 1. 是什么? 图,也是一种数据结构,其节点可以具有零个或者多个相邻元素,两个节点之间的连接称为边,节点也称为顶点,图表示的是多对多的关系。 ?...无向图的遍历: (1). 遍历分类: 图的遍历分为两种: 深度优先:depth first search,简称DFS。...类似于二叉树的层序遍历,具体的本文不做介绍。 (2). 深度优先算法步骤: 以开篇中的图为例: 访问A,并将A标记为已访问; 找到A的第一个未被访问邻接顶点,怎么找?...看矩阵: A B C D E F G H A[0, 1, 0, 0, 0, 1, 0, 1] 第一个1对应的是B,所以A的第一个邻接顶点是B,所以第二个遍历出来的是B,并且标记B为已访问...比如我要找A的第一个邻接顶点,那就遍历A所在的那一行,找到第一个1出现位置的索引,该索引对应的就是A的第一个邻接顶点。

1.4K20

图的遍历 --- 广度优先遍历

广度优先遍历思路: 还是以之前深度优先遍历的图为例,如下: A B C D E F G H A[0, 1, 0, 0, 0, 1, 0, 1] B[1, 0, 1, 0, 0, 0,...1, 0] F[1, 0, 0, 0, 0, 0, 1, 0] G[0, 1, 0, 0, 1, 1, 0, 0] H[1, 0, 0, 1, 0, 0, 0, 0] 所谓广度优先,就类似二叉树的层序遍历...所在行所有未被访问过的1对应的顶点,发现没有; 接着搞A的第三个邻接顶点H所在的行,输出H所在行所有未被访问过的1对应的顶点,即D; A所在的行搞完了,就搞B、D、E……H所在的行,重复上面的操作,最终的遍历结果是...vertex的索引 int vertexIndex = vertexList.indexOf(vertex); // 从(priorVertexIndex + 1)开始遍历二维数组的第...(currentVertex, neighborVetex); } } } } /** * 广度优先遍历

1.3K10

Python深度遍历、广度遍历、递归函数遍历目录【详细讲解】

Python通过os模块可以实现对文件或者目录的遍历,这里想实现这样的效果有三种方法,分别是递归函数遍历目录,栈深度遍历和队列广度遍历。下面就通过这三种方法来演练一下。...通过以下目录结构来演示 图片1.png 1.递归函数遍历目录 import os path = r'C:\Users\Administrator\Desktop\python知识总结\1.python自学网...(path, sp=''):     flist = os.listdir(path) # print(flist)     sp += '\t' for f in flist: # 遍历目录...import os path = r'C:\Users\Administrator\Desktop\python知识总结\1.python自学网-基础教程-视频源码\aaa' # 栈结构遍历又可以看做深度遍历...= 0: # 数据出队         dpath = queue.popleft() # 遍历目录中所有目录和文件,是目录继续遍历,不是目录打印出来         flist

3.6K20
领券