当前位置: 首页 > 知识库问答 >
问题:

.foreach()对数组与NodeList(JavaScript)[重复]

王俊楚
2023-03-14

我听说有时需要将NodeLists更改为数组才能使用forEach()方法。我必须在什么样的情况下做这件事?

我是这样写的:

const items = document.querySelectorAll('.js-li');
const arrItems = Array.from(items);

items.forEach((v, i, a) => console.log(`${v} / ${i} / ${a}`));
arrItems.forEach((v, i, a) => console.log(`${v} / ${i} / ${a}`));
<ul>
  <li class="js-li">zero</li>
  <li class="js-li">one</li>
  <li class="js-li">two</li>
  <li class="js-li">three</li>
  <li class="js-li">four</li>
</ul>

但是我无法理解with/white array.from()之间的区别。

共有1个答案

唐焕
2023-03-14

NODELESTS和数组是两回事,因为NODELESTS实际上不是JavaScript API,而是浏览器API。

QuerySelectorAll()GetElementsByTagName()这样的东西不是JavaScript方法,它们是允许您访问DOM元素的浏览器API。然后可以用JavaScript来操作它们。

思考NodeLists和数组的主要方式:NodeLists是一种与语言无关的访问DOM元素的方式,而数组是一个JavaScript对象,可以用来包含一些东西的集合。

它们都有自己的方法和属性,如果需要,您可以将NodeList转换为数组(但不能反过来)。

 类似资料:
  • 问题内容: 我有一个嵌套的数组,我想在其中显示结果的子集。例如,在下面的数组中,我想遍历嵌套array [1]中的所有值。 我试图使用foreach函数,但似乎无法正常工作。这是我的原始语法(尽管我意识到这是错误的)。 我试图避免对键是否与我要搜索的键相同的变量进行比较,即 有任何想法吗? 问题答案: 如果您知道嵌套数组中的级别数,则可以简单地执行嵌套循环。像这样: 如果您不知道数组的深度,则需要

  • 问题内容: 对于DOM,我一直对HTMLCollections,对象和数组感到困惑。例如… 和之间有什么区别? 和是对象(jQuery的对象)。为什么console.log还会在它们旁边显示DOM元素的数组,而它们不是对象也不是数组? 什么是难以捉摸的“ NodeLists”,以及如何选择一个? 还请提供以下脚本的任何解释。 谢谢 问题答案: 首先,我将解释之间的差异和。 两个接口是 集合 DOM

  • 问题内容: 我正在开发一个使用数据库类查询mySQL的php应用程序。 该类在这里:http : //net.tutsplus.com/tutorials/php/real-world-oop-with-php-and- mysql/ 我根据自己的需要对课程进行了一些调整,但存在一个问题(可能是一个愚蠢的问题) 使用select()时,它返回一个多维数组,类似于具有3个cols(id,firstn

  • 如何在两个属性之后对对象数组进行分组?在以下情况下是否可以使用减少? 例如:按国家和城市将以下数组分组,并对“年龄”属性求和: /*预期结果:*/

  • 主要内容:1. 属性,2. 方法对象指定有序节点集合的抽象。 中的项目可通过整数索引访问,它的索引从开始。 1. 属性 下表列出了对象的属性 - 属性 类型 描述 length 它给出了节点列表中的节点数。 2. 方法 以下是对象的唯一方法。 序号 方法 描述 1 item() 它返回集合中的索引项。 如果索引大于或等于列表中的节点数,则返回。