使用扩展语法创建数组

2023-11-25

这是我在 React 书中找到的一个 JavaScript 箭头函数:

const createArray = (length) => [...Array(length)];

为什么不简单地返回一个新数组呢?

const createArray = (length) => Array(length);

如果我记录结果createArray(7)使用任一定义,我都会得到相同的结果:

(7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]

与第二个定义相比,第一个定义实现了什么?


Array(length);将创建一个稀疏数组- 没有自有财产的人(除了length),不能使用数组迭代方法进行迭代:

const arr = new Array(7);

console.log(arr.hasOwnProperty('4'));
arr.forEach(() => {
  console.log('iteration');
});

相反,利用扩展语法将正确填充新数组:

const arr = [...new Array(7)];

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

使用扩展语法创建数组 的相关文章

随机推荐

  • 我如何知道故障转储的 CLR 版本?

    我有一个 NET 应用程序崩溃的小型转储 有没有办法使用 Windbg 或其他工具了解故障机器 生成故障转储 的 CLR 版本 例如 mscorwks dll 的版本 在 WinDbg 中 最简单的方法是使用 eeversion命令 但如果
  • Callable 基类无效?

    有人可以解释为什么继承自非参数化和参数化Callable from typing import Callable from typing import NoReturn from typing import TypeVar T TypeVa
  • 将选项传递给 chrome 驱动程序 selenium

    我正在尝试禁用 chrome 控制台的输出 如果我通过 start maximized 选项 它就可以正常工作 我可能命令错误 DesiredCapabilities capabilities DesiredCapabilities chr
  • 无法更新到 com.google.gms:google-services:4.2.0

    启动时谷歌服务版本 是classpath com google gms google services 4 1 0 但是当我将其更改为4 2 0错误发生在Sync Project with Gradle files 我的顶级等级 Top l
  • PHP:通过 Parent::method() 与 $this->method() 从子类调用方法的差异

    假设我有一个家长班 class parentClass public function myMethod echo parent myMethod was called 和下面的子班 class childClass extends par
  • pyinstaller 失败并出现错误

    我正在使用 pyinstaller 编译当前的程序 它似乎无法处理所有需要的文件 它本身运行良好 并且无需绘图也可以编译和运行 似乎无法找到文件 default schema json 我什至无法在驱动器上的任何位置找到该文件 回溯 最近一
  • 将浮点数转换为字符串

    如何在不使用库函数的情况下将 C C 中的浮点整数转换为字符串sprintf 我正在寻找一个功能 例如char ftoa float num 转换num到一个字符串并返回它 ftoa 3 1415 应该返回 3 1415 根据 Sophy
  • 从一个数据库表复制到另一个 C#

    使用 C vs2005 我需要将表从一个数据库复制到另一个数据库 两个数据库引擎都是 SQL Server 2005 对于远程数据库 源 我只有对存储过程的执行访问权限才能获取我需要在本地带来的数据 我对本地数据库有更多的控制权 因为它由需
  • 如何在 MonoTouch 中将 NSHttpCookie 转换为 System.Net.Cookie?

    我有一个 MonoTouch iPhone 应用程序 它通过 Azure 访问控制服务进行联合登录 登录是通过嵌入式 UIWebView 浏览器完成的 登录完成后 我想将 cookie 传输到我的应用程序中 我可以访问 NSHttpCook
  • 如何使用 Django 后台任务初始化重复任务?

    我正在开发一个 Django 应用程序 它从 dropbox 读取 csv 文件 解析数据并将其存储在数据库中 为此 我需要后台任务来检查文件是否被修改或更改 更新 然后更新数据库 我试过了 Celery 但无法使用 django 配置它
  • CP 求解器可以在特定点初始化吗?

    我正在使用 CP Sat 求解器来优化我正在制定的时间表 然而 现在这个问题需要很长时间才能解决 是否可以使用旧结果作为求解器的种子 作为起点 以减少找到最佳结果所需的时间 看看这个解决方案提示示例 https github com goo
  • 如何在 OSX El Capitan 上运行 Haskell

    我昨天刚刚升级到 Mac OSX El Capitan 发现我用来在终端上运行 Haskell 的方法不再起作用了 我曾经通过输入在终端上运行 Haskellcd the path where my hs file is in 然后输入gh
  • 为什么 C# 对 ushort 上的模运算发出错误“无法隐式地将 int 转换为 ushort”?

    在另一个帖子中 有人问为什么要添加两个ushort值在 C 中引发错误 例如 ushort x 4 ushort y 23 ushort z x y ERROR cannot implicitly convert int to ushort
  • Scala 解析器标记分隔符问题

    我正在尝试为下面的命令定义语法 object ParserWorkshop def main args Array String ChoiceParser todo link todo to database ChoiceParser to
  • 在 Linq 查询中调用类方法

    我有一个名为 GetAge DateTimebirthDay 的方法 我想在 Linq 查询中通过传递生日来使用此方法 并根据返回的年龄值需要执行一些逻辑 我想要以下 LINQ 格式的查询 from customer in contetx
  • 迭代@IntDef、@StringDef或任何@Def类中的值

    考虑这个类 public class MyClassOfMystery public static final int NO FLAGS 0 public static final int FIRST FLAG 1 public stati
  • Galaxy S4 上的浮动触摸

    三星 Galaxy S4 有 浮动触摸 功能 即使没有触摸屏幕也可以检测到手指 我想在按钮上触发一个事件 btn1 当手指经过时将其悬停 我尝试使用OnHoverListener but onHover当MotionEvent is Mot
  • 如何撤消 Git 中最近的本地提交?

    我不小心提交了错误的文件Git 但尚未将提交推送到服务器 我如何撤消这些提交local存储库 撤消提交并重做 git commit m Something terribly misguided 0 Your Accident git res
  • Oracle:Order by Union 返回 ORA-00933:SQL 命令未正确结束

    我在同时使用 Oracle 的 union 和 order by 子句时遇到问题 我有两个复杂的查询 其中包含子查询 每个查询都有一个 order by 子句 我需要合并两者的输出并返回结果 当我运行它时 我收到错误 ORA 00933 S
  • 使用扩展语法创建数组

    这是我在 React 书中找到的一个 JavaScript 箭头函数 const createArray length gt Array length 为什么不简单地返回一个新数组呢 const createArray length gt