手机版

用JavaScript批量创建数组的方法

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

JavaScript有很多批量创建数组的方法。为了衡量它们的性能,我使用不同的方法创建了一个长度为100,000的数组,具有相同的键和值。同时,我定义了以下函数来测量创建数组所花费的时间:

函数t(fn){ var start=date . now();fn . call(this);var end=date . now();返回(结束-开始)毫秒;}以下是几种常用的创建数组的方法及其花费的时间:

使用连接和拆分

这种方法在地图操作上花费大量时间,在移除地图后只需要2毫秒

使用应用

这里使用了{length: 100000}伪数组。NodeList和参数都是伪数组。它们不是真正意义上的数组,而是同时具有“长度属性”和“索引属性”的对象。数组的方法不能直接使用,但是apply和call可以接受这个伪数组。我们通常使用的array.prototype.slice(参数)就是基于这个原理。

这里,一个长度为100,000的伪数组被传递给Array函数,构造一个长度为100,000的数组,然后通过map赋值。有些同学可能要问,为什么不直接用Array(100000)生成数组,因为Array(100000)生成的数组的每个值都是未定义的,不能用map遍历。

使用Array.from()

这是ES6中的一种新方法,可以直接将伪数组转换成数组

如果用数组代替伪数组,速度会下降很多。

使用Array.fill()

先用Array.fill()填充数组,然后按映射赋值

使用for循环

我说当时很震惊,还在查是不是少打了个0。我表达了不满,想推一推试试

我发现推力是如此之快.

通过比较发现,最原始的for循环具有最快的直接赋值速度,而其他方法具有相似的速度。

但是for循环写起来真的很麻烦。一句话能做的事需要三句话。

因此,如果不要求性能,使用apply和Array.from是最方便的(毕竟在实际开发中不会有100,000这样大的数组)。

以上就是边肖介绍的用JavaScript批量创建数组的方法。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:用JavaScript批量创建数组的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。