将 HTMLCollection 转换为数组的最有效方法

2024-01-03

除了迭代所述集合的内容并手动将每个项目推入数组之外,是否有更有效的方法将 HTMLCollection 转换为数组?


var arr = Array.prototype.slice.call( htmlCollection )

使用“本机”代码将具有相同的效果。

Edit

由于这得到了很多观点,请注意(根据 @oriol 的评论)以下更简洁的表达式是有效地相等的:

var arr = [].slice.call(htmlCollection);

但请注意@JussiR 的评论,与“详细”形式不同,它确实在此过程中创建了一个空的、未使用的且实际上不可用的数组实例。编译器对此所做的事情超出了程序员的知识范围。

Edit

自 ECMAScript 2015 (ES 6) 以来,还有数组.from http://ecma-international.org/ecma-262/8.0/#sec-array.from:

var arr = Array.from(htmlCollection);

Edit

ECMAScript 2015 还提供了扩展运算符 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax,其功能等价于Array.from(尽管请注意Array.from支持映射函数作为第二个参数)。

var arr = [...htmlCollection];

我已经确认上述两项都适用NodeList.

上述方法的性能比较:http://jsben.ch/h2IFA http://jsben.ch/h2IFA

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 HTMLCollection 转换为数组的最有效方法 的相关文章

  • 各种 Javascript 优化项目如何影响 DOM 性能?

    通过 Tracemonkey Squirrelfish 和 V8 项目 大量 C S 计算机科学融入了 Javascript 这些项目 或其他项目 是否解决了 DOM 操作的性能问题 或者它们纯粹与 Javascript 计算相关 纯 DO
  • $(document).ready 回调何时执行?

    假设我们附加一个 click http api jquery com click 锚点的处理程序 a 中的标签 document ready http api jquery com ready 打回来 该处理程序将取消默认操作 遵循href
  • Bootstrap 页脚不在底部

    我试图强制我的页脚位于网站底部 我不希望它在滚动时粘住 只是在向下滚动网页时出现在底部 目前 网页显示时页脚位于内容下方 我添加了这样的代码bottom 0 并发现它粘住了并且不适合我的网站 我还添加了这样的代码html body heig
  • 防止 Node.js 中的 SQL 注入

    是否有可能以与 PHP 具有防范 SQL 注入的预准备语句相同的方式防止 Node js 中的 SQL 注入 最好使用模块 如果是这样 怎么办 如果不 有哪些例子这可能会绕过我提供的代码 见下文 一些背景 我正在制作一个 Web 应用程序
  • 为什么 jQuery 对损坏标记的解释与浏览器不同?

    我之前已经回答过这个问题 https stackoverflow com a 19101905 1253312 但我并不完全理解why答案是正确的 答案的要点 p p function jqrender html a href http w
  • 如何从 ByteBuffer 转换为 Integer 和 String?

    我转换了一个int使用 ByteBuffer 的字节数组putInt 方法 我该如何做相反的事情 那么将这些字节转换为 int 吗 此外 我使用 String 的将字符串转换为字节数组getBytes 方法 我如何将其反过来转换 这byte
  • Angular 4 - 具有动态参数值的自定义验证器

    我编写了一个自定义验证器 用于检查日期是否高于某个最小日期 代码如下所示 export function validateMinDate min Date ValidatorFn return c AbstractControl gt if
  • 在 Javascript 中实现 Zobrist 哈希

    我需要在 Javascript 中为国际象棋引擎实现 Zobrist 哈希 我想知道实现此目的的最佳方法是什么 现在 我不是计算机科学家 也从未上过正式的算法和数据结构课程 所以如果我在这方面有点偏离 我很抱歉 据我了解 我需要一个 64
  • JQuery mouseover 函数多次触发

    我很长时间以来一直使用这种方法来为整个类 按钮等 设置事件 div bigButton mouseover function this style backgroundColor dfdfdf 然而 在进行一些测试时 我刚刚注意到 当将鼠标
  • LightningChart JS - LineSeries / Progressive X 的损坏

    我在使用 LightningChart 时遇到了一个有趣的问题 它似乎会破坏或以其他方式减少我的数据 具体取决于它与图表的 DateOrigin 的距离 我的数据是每秒 1000 个样本 我试图一次显示 1 2 周的数据 我正在使用 Cha
  • 在 ReactJS 中更改 URL onClick

    在我的项目中我有一个TabComponent它显示 3 个选项卡 首页 热门 全部 现在 我正在使用context反应维持 activetab它存储当前选项卡 toggleTab改变的方法activetab using setState 选
  • 从数组中删除空字符串,同时保持记录而不循环?

    这个问题在这里被问到 从数组中删除空字符串 同时保留非空字符串的索引记录 https stackoverflow com questions 18113243 remove empty strings from array while ke
  • 抓取 Shopee API v4

    我有一个最终项目 其中我想要检索的数据是通过在shopee上抓取数据来获取的 但是当我在隐藏的API上抓取shopee时遇到问题 当我在Insomnia脚本上尝试时 脚本会运行 但是当我尝试时在本地或 google colab 脚本上 这是
  • 如何使用javascript将数据存储在xml文件中?

    我是 javascript 新手 并在我的项目中使用它 因为我需要读取 xml 文件 然后在操作后我想将更新后的值存储回 xml 文件中 我成功从 xml 文件获取值 但无法存储值返回到 xml 文件 这是我尝试过的代码
  • 在 JavaScript/CoffeeScript 中确定一个数组是否包含另一个数组的内容

    在 JavaScript 中 如何测试一个数组是否包含另一个数组的元素 arr1 1 2 3 4 5 8 1 10 2 3 4 5 9 function name arr1 gt true 没有 set 函数可以执行此操作 但您可以简单地执
  • HTML 画布从 getImageData 返回“偏离一些”字节

    我找到getImageDataHTML 画布似乎返回不正确的字节值 我使用以下 Python 代码生成了 1x1 px 图像 from PIL import Image import numpy as np a np array 12 18
  • 如何从 Instagram 的 media_preview 原始数据重新创建预览?

    如果您从 Instagram 的 API 获取 JSON 数据 您会发现media previewkey 其值是一些 Base64 编码的数据 它看起来确实像一些非常小的预览二进制数据 也许是压缩的 Take 这个帖子 https www
  • 多个引导模式的滚动问题

    我有一个带有大量信息的模态页面 因此您需要滚动 该模式包含指向第二个模式的链接 When I 打开模态 1 单击链接打开模式 2 模式 1 保持在后台 然后关闭模式 2 以便我回到模式 1 modal 1 失去滚动 仍然有一个滚动条 但它不
  • 如何从索引文件迭代多个导入的模块

    我有一个名为Polygons我在那里创建了一个index jsfile 以导出目录中的所有文件 它看起来像这样 export default as europe from europe export default as northAmer
  • ASP.NET MVC3 Ajax.ActionLink - 条件确认对话框

    我有一个 Ajax ActionLink 仅当满足某些条件 用户有未保存的更改 时 我才希望显示一个确认对话框 我创建了一个 JavaScript 函数 它根据需要显示确认对话框 并根据响应返回 true 或 false 我将其绑定到 Ac

随机推荐

  • Java 11 中 Stringtrim() 和 strip() 方法的区别

    除其他更改外 JDK 11 还为 java lang String 类引入了 6 个新方法 repeat int 重复字符串所提供的次数int范围 lines 使用 Spliterator 延迟提供源字符串中的行 isBlank 指示字符串
  • Google Cloud SDK 安装错误:UnicodeDecodeError:“ascii”编解码器无法解码位置 197 中的字节 0xe2:序数不在范围内(128)

    Google Cloud SDK 安装过程在我的计算机 MAC 上失败并给出以下堆栈跟踪 Traceback most recent call last File Users ttn Desktop google cloud sdk bin
  • 如何修改 PostgreSQL JSONB 数据类型内的单个属性值?

    如何修改 PostgreSQL JSONB 数据类型中的单个字段 假设我有一张名为 动物 的表 如下所示 id info 49493 habit1 fly habit2 dive location SONOMA NARITE 我想简单地更改
  • C 中的双精度 - 打印 50 位有效数字会产生不准确的值

    我正在为我的微积分课做一个黎曼求和的积分程序 我决定在计算积分时使用 C 并且我注意到我的程序中存在由这个问题引起的巨大错误 include
  • 未封闭的正则表达式

    我有以下代码 render jshint laxbreak true var buttonClasses classSet Button true buttonContainerClasses classSet u textRight th
  • 如何获取当前活动模态表单的引用?

    我正在编写一个小类来驱动 win 表单应用程序的集成测试 测试驱动程序类可以访问主窗体并通过名称查找需要使用的控件 并使用它来驱动测试 为了找到控件 我正在遍历 Control Controls 树 但是 当我想要访问对话框窗口 显示为对话
  • 将关系(规范化)数据表快速插入 SQL Server 2008 数据库

    我正在尝试找到一种比我现在使用的 Linq 更好更快的方法来插入大量数据 50K 行 我尝试写入本地数据库的数据位于序列化并从 WCF 接收的 ORM 映射数据列表中 我热衷于使用 SqlBulkCopy 但问题是这些表是规范化的 实际上是
  • 如何在 mousedown 事件上连续滚动 div?

    我有两个 div 和两个按钮 div div div div div div div div 如何连续滚动 items 直到用户释放按钮 我尝试使用 jquery mousedown 事件和动画函数 但无法使其工作 up mousedown
  • DataGridView 列页脚 c#.net winforms

    有没有办法在a中添加列页脚datagridview哪个不是数据绑定 我用它来获取用户输入以添加库存 目前我正在使用标签来显示总数 但如果可能的话我想将其更改为页脚 我之前遇到过同样的问题 经过长时间的搜索后我意识到 Winform Data
  • 如何从相对路径使用动态链接库

    我想使用 go 应用程序中的动态 C 库 我可以构建应用程序 但在运行时找不到该库 这是我的项目的结构 src ctest lib libmylib so libmylib h main go 在 main go 中 我导入 h 和 so
  • UIPageControl + UIAppearance

    UIAppearance 的文档非常糟糕 我想自定义 UIPageController 的颜色 但我无法弄清楚要设置哪些属性 当我走的时候 UIPagecontrol appearance set我可能有数百个选择 所以几乎不可能弄清楚什么
  • 如何使用 Invoke-WebRequest 查看发送的标头?

    当我使用以下命令时 Invoke WebRequest UseBasicParsing Uri http example com SessionVariable Foo UserAgent Bar 我得到以下输出 StatusCode 20
  • 识别WinRT的宏?

    是否有新的宏可以在代码中确定应用程序是否在 WinRT 上运行 正如我正在与LoadLibrary 如果有一个宏来替换所有调用 那就太好了LoadLibrary与一到LoadPackagedLibrary 我理解文档是正确的 因为我可以通过
  • FosUserbundle 和 symfony 2 模板和编辑

    我是 symfony 2 的新手 我刚刚设置了基本的 FOSuserbundle 但我有几个问题 我已经设置了新的布局模板 但我找不到在哪里更改登录 注册 个人资料的表单模板 我找不到如何编辑用户个人资料 我可以使用 profile 查看个
  • 从 React 组件中外部加载的 HTML 访问内部函数

    我有以下用例 一些来自第三方源的 HTML 被加载到我的 React 组件中 class MyComponent extends Component render return div div 在外部加载的 HTML 内部 存在特定跨度的单
  • 从服务器获取 Windows 登录名

    我已经被这个问题困扰好几天了 非常感谢任何帮助 我有一个 SQL 触发器 它调用用 C 编写的 DLL 在此函数中 我需要发起触发触发器的 SQL 命令的人员的 Windows 登录名 我从 C 还是 SQL 获取此信息并不重要 不幸的是
  • 我试图在 MATLAB 中使用 LaTex 字符串作为轴标签,但无缘无故地得到一个数字

    我正在尝试使用 LaTex 字符串为 y 轴标签插入一个分数 我得到一个数字 采用标准字体和ylabel位置 以及我的预期 我试图插入的分数 当我编辑代码时 这对我来说已经改变了 但是当我尝试调查这个问题时就停止了 我输入的是 353 19
  • 没有 CSRF 代币的表单:有什么风险

    如果我不在表单中使用 csrf 令牌 我到底会面临哪些风险 我并不是在寻找简单的风险标签或名称 因为这些可能会令人困惑 我需要用简单的英语了解攻击者到底可以做什么以及只有在什么情况下他们才能做到这一点 CSRF 漏洞允许恶意用户 或网站 让
  • 将 JanusGraph 与 Solr 结合使用

    设置 JanusGraph 我在控制台中注意到以下内容 09 04 12 175 INFO ReflectiveConfigOptionLoader 173 Loaded and initialized config classes 10
  • 将 HTMLCollection 转换为数组的最有效方法

    除了迭代所述集合的内容并手动将每个项目推入数组之外 是否有更有效的方法将 HTMLCollection 转换为数组 var arr Array prototype slice call htmlCollection 使用 本机 代码将具有相