将 JavaScript NodeList 转换为数组的最快方法?

2024-01-15

之前在这里回答过的问题说这是最快的方法:

//nl is a NodeList
var arr = Array.prototype.slice.call(nl);

在我的浏览器上进行基准测试时,我发现它比这个慢 3 倍以上:

var arr = [];
for(var i = 0, n; n = nl[i]; ++i) arr.push(n);

它们都产生相同的输出,但我发现很难相信我的第二个版本是最快的方法,特别是因为人们在这里另有说法。

这是我的浏览器(Chromium 6)中的一个怪癖吗?或者有更快的方法吗?


借助 ES6,我们现在可以通过一种简单的方法从 NodeList 创建数组:Array.from() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from功能。

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

将 JavaScript NodeList 转换为数组的最快方法? 的相关文章

  • VB.NET 中字节数组的数组

    我需要一个数组 数组中的每个项目都是这样的字节数组 但我不知道如何执行以下操作 Dim xx as array xx 0 as byte H12 HFF xx 1 as byte H45 HFE 您可以像这样创建嵌套或 锯齿状 字节数组 D
  • 链接 getElementById

    我一直在寻找这个问题的答案 但找不到答案 所以我想尝试一下 StackOverflow 在 javascript 中 这是否有效 x document getElementById myId y x getElementById mySec
  • 错误只有 size-1 数组可以转换为 Python 标量

    我有这个代码 for a in data X for i in a if not i isdigit x hash i data X column row x row row 1 row 0 column column 1 desired
  • d3 树 - 有相同孩子的父母

    我一直在将代码从 JIT 转换为 D3 并使用树布局 我已经复制了代码http mbostock github com d3 talk 20111018 tree html http mbostock github com d3 talk
  • 在 JavaScript 中解析日期时间字符串

    有谁知道如何解析所需格式的日期字符串dd mm yyyy See Mozilla Core JavaScript 参考 日期对象 https developer mozilla org en Core JavaScript 1 5 Refe
  • JavaScript 中的 ParseFloat 函数

    当我添加两个文本框值时1 001 and 0 001然后我做了一个parseFloat I get 1 0019999999 我要它1 002 你能帮助我吗 JavaScriptNumber http www w3schools com j
  • 如何使用Gson将JSONArray转换为List?

    在我的 Android 项目中 我试图将收到的 JSONArray 转换为列表 在 的帮助下这个答案 https stackoverflow com questions 8371274 how to parse json array in
  • 在 Cytoscape.js 中为家谱设置边缘样式

    我有一个使用 Django 的家谱应用程序 我正在尝试使用http js cytoscape org http js cytoscape org对于用户界面 我想设置之间的边缘样式浪漫的伴侣像这样 http www eprintableca
  • 添加数组的总和。显示1个输出

    更新 这个问题的答案如下 感谢在不同线程上进行的 dougtesting 将数组相加 显示总和 https stackoverflow com questions 45724641 add array together display su
  • 为什么 array_merge_recursive 不是递归的?

    我最近在我的应用程序中发现了一个由意外行为引起的错误array merge recursive 让我们看一下这个简单的例子 array1 1 gt 1 gt 100 2 gt 200 2 gt 3 gt 1000 3 gt 1 gt 500
  • 如何在 vuejs 中防止/停止点击传播

    我有一个递归列表 树 每个元素都有一个 click sayHello el id 现在的问题是 因为它是一个嵌套列表 例如 list element 0 01 list el 1 01 list el 2 01 list el 1 02 l
  • 为什么 Number.isNaN() 对字符串返回 false?

    据我的理解NaN代表Not A Number Strings不是绝对的Numbers因此我希望下面的代码返回true对于字符串 然而 事实并非如此 console log Number isNaN Stack Overflow 有人可以澄清
  • 在 Jscript 中实例化 System.Threading.Thread 对象

    我正在尝试使用 Jscript 创建一个新的 System Threading Thread 对象 但我无法让构造函数工作 如果我只是执行以下操作 var thread new Thread threadFunc function thre
  • 输入号码时自动格式化 SSN

    我有一个文本字段 用户输入 SSN 号码 输入自身时 它应该格式化 就像关于文本字段的更改 它应该格式化999 999 999以这种方式在显示器本身上 kottenator 的脚本几乎已经完成 但它每隔 3 位数字就中断该值 而不是 3 位
  • 如何使 Meteor 上的服务器可以访问文本文件

    我很惊讶我无法在这里搜索我的答案 似乎没有其他人遇到这个问题 当您运行meteor服务时 js html等被打包在 meteor local build文件夹中 但它似乎排除了不是js或html的内容 我有一个名为 magicsets 的文
  • queue.js 是如何工作的?

    我一直试图理解如何Mike Bostock 的queue js https github com mbostock queue blob master queue js有效 但我看不出它是如何工作的 我不明白的部分是代码如何设法继续执行回调
  • javascript初学者:在javascript中添加动态样式? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 Javascript 创建 标签 https stackoverflow com questions 524696 how to create a style tag with javasc
  • 如何从 vue 组件调用 App.vue 中的方法

    我有一个 vue 组件和一个 vue 元素声明 如下所示 Vue component todo item template li This is a todo li methods test function I am getting an
  • JavaScript:如何在 Internet Explorer 中模拟更改事件(委托)

    UPDATE 回顾 小提琴和赏金 这个问题并没有引起太多关注 所以我将花一些时间来解决这个问题 我知道我的答案和问题都过于冗长 这就是为什么我继续设置这把小提琴 http jsfiddle net vVA8N 在我看来 这是我目前必须用来接
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR

随机推荐

  • SlidingPaneLayout 上的单击事件

    我正在尝试使用 SlidingPaneLayout 左视图是ListFragment 右视图是详细视图 布局显示正确 我可以滑动它 但是 如果详细视图位于列表前面并且我单击它 则后台中的列表会收到单击 我的布局如下所示
  • 使用下划线将两个键和值数组合并到一个对象

    给定两个数组 一个包含键 一个包含值 keys foo bar qux values 1 2 3 你如何将它转换为一个对象 仅使用 underscore js 方法 foo 1 bar 2 qux 3 我不是在寻找简单的 javascrip
  • Google 地图在模拟器上显示,但在设备上不显示

    我编写了一个基本的地图应用程序 可以使用 AndroidStudio 轻松实例化 唯一的区别是片段加载到另一个自定义布局中 package com wayl activities import android os Bundle impor
  • 将表单输入值作为对象列表从 JSP 页面传递到 Servlet

    这里有一个简化的 不是现实世界 的例子 假设有一个领域模型 一个类Movie 其中有演员列表 一类Actor具有三个字段 name 出生日期 角色数量 以下代码是此场景的说明 电影 java public class Movie some
  • Java - 带重音符号的 InetSocketAddress 主机名

    我在与主机名中包含一些重音符号 的服务器建立连接时遇到问题 例如 String oUrl www h tel fr System out println oUrl InetSocketAddress isa new InetSocketAd
  • 无法在 React 的类中使用 const

    我正在关注这个教程 https nickymeuleman netlify com blog gatsby pagination navigate to previousnext page https nickymeuleman netli
  • 无法将匿名方法转换为类型“System.Delegate”,因为它不是委托类型

    我想在 WPF 应用程序的主线程上执行此代码并收到错误 我无法弄清楚出了什么问题 private void AddLog string logItem this Dispatcher BeginInvoke delegate this Lo
  • 具有内部属性的 JSON 序列化器对象

    我有一些带有一些内部属性的类 我也想将它们序列化为 json 我怎样才能做到这一点 例如 public class Foo internal int num1 get set internal double num2 get set pub
  • 构建目录是否应该提交到版本控制项目中?

    我正在对我的项目进行版本控制 我已使用 src 目录提交项目源代码 我的问题是 使用版本控制时是否应该提交我的 build 目录 有时称为 dist 或 bin 具体取决于应用程序 请在您给出的答案中解释原因 提前致谢 除非你专门使用git
  • 防止点击事件时浏览器弹出

    在基于 jquery mobile 的 Web 应用程序中 我如何防止默认浏览器菜单在 点击按住 时显示 相反 我想显示自定义对话框页面 下面提到的是我现在的代码 task row bind taphold function event u
  • Java - 如何将此字符串转换为日期?

    我从服务器收到此信息 但我不明白 T 和 Z 的含义 2012 08 24T09 59 59Z将此字符串转换为 Date 对象的正确 SimpleDateFormat 模式是什么 This is ISO 8601 http www w3 o
  • 如何使用 Python 更快地处理图像?

    我试图编写一个脚本来检测屏幕上的 RGB 值 然后单击 x y 值 我知道如何执行单击 但我需要比下面的代码当前处理图像的速度快得多 这可以用Python实现吗 到目前为止 我一次读取一行 当 x 1920 时 我进入第二行 但完成一行大约
  • WPF 淡入淡出动画

    当控件变得可见时 如何使其淡入 淡出 以下是我失败的尝试
  • 数学(在 WPF 中):平移后获取新的 x,y 坐标

    参考这个编程游戏 https stackoverflow com questions 505040 developing a robocode type game with net for a school assignment我目前正在建
  • MultiLevel ExpandableListView 未正确突出显示

    我正在创建一个自定义ExpandableListView使用教程发现支持三个级别here http androidcodesnips blogspot com 2011 09 three level expandable list html
  • 使用 jcifs 定义的超时不起作用

    我已将responseTimeout和soTimeout设置为15000ms 但我仍然得到 90000ms 后超时 我在 v1 3 18 和 v1 3 17 上对此进行了测试 当我不注册 jcifs 时 会发生 HttpURLConnect
  • Google 应用引擎 QR 码解码器

    我想知道是否有一个好的Python库来解码QR码 基本上我想要的是提供带有二维码的库图像 并且库将输出保存在图像中的内容 您是否已经看过 http pyqrcode sourceforge net http pyqrcode sourcef
  • TOAD 脚本中的变量

    我有一个正在 TOAD 中执行的 SQL 脚本 目前 我只是用一个又一个的语句来排列它 因此 select such and such from somewhere delete other thing from somewhere els
  • C# 在哪里添加方法

    我对 C 很陌生 一天前才开始 我必须做一个简单的 C 数据库 其中包含音乐专辑等 我遇到的问题是我无法调用我刚刚执行的方法 任何人都可以帮助我在 main 中包含这个方法吗 void addnew int ID currid string
  • 将 JavaScript NodeList 转换为数组的最快方法?

    之前在这里回答过的问题说这是最快的方法 nl is a NodeList var arr Array prototype slice call nl 在我的浏览器上进行基准测试时 我发现它比这个慢 3 倍以上 var arr for var