JavaScript 批量创建数组的方法
JavaScript有许多批量创建数组的方法,为了衡量它们的性能,我分别使用不同的方法创建一个长度为100000的数组,且键和值相等。同时,我定义了下面这个函数用来测量创建数组所耗费的时间:
function t(fn) { var start = Date.now(); fn.call(this); var end = Date.now(); return (end - start) + 'ms'; }
以下为常用的几个创建数组的方法以及它们所耗费的时间:
使用join和split
该方法把大量时间耗费在了map操作上,去掉map后只需要2ms
使用apply
这里用到了一个{ length: 100000 }伪数组,NodeList和arguments都是伪数组(array-like object),它们都不是真正意义上的数组,而是带有"length属性"并且同时具备"索引属性"的对象,不能直接使用数组的那些方法,而apply和call却可以接受这种伪数组。我们平时在用的Array.prototype.slice( arguments)就是基于这个原理。
这里把长度为100000的伪数组传递给Array函数,构造出了一个长度为100000的数组,然后再用map赋值。有同学可能要问了,为什么不直接Array(100000)生成数组,这是因为通过Array(100000)生成的数组每个值都为undefined,无法通过map遍历。
使用Array.from()
这是ES6新出的方法,可以将伪数组直接转换为数组
如果把伪数组换成数组,速度下降了很多。
使用Array.fill()
先用Array.fill()填充数组,之后再通过map依个赋值
使用for循环
我表示当时就惊呆了,还一直在检查是不是少打个0. 我表示不服,想用push试一下
发现push也好快哦……
比较下来,发现还是最原始的for循环直接赋值的速度最快,其他几个方法速度都差不多。
但for循环写起来实在麻烦,一句话就能搞定的事需要三句才能搞定。
所以,如果对性能没有太大要求的话(毕竟在实际开发中也不会有100000那么大的数组),使用apply和Array.from最方便。
以上所述是小编给大家介绍的JavaScript 批量创建数组的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
- javascript中创建数组的方法
- JavaScript 创建数组的方法和基本操作
- javascript创建数组之联合数组的使用方法示例
- javaScript动态创建数组、动态赋值json数据方法之一(持续补充)
- javascript实现数组内值索引随机化及创建随机数组的方法
- javascript创建数组或赋值的三种方法
- javascript创建数组之联合数组的使用方法示例
- javascript实现数组内值索引随机化及创建随机数组的方法
- JavaScript学习笔记29-其他的创建数组的方法
- javascript:创建数组并赋值的三种方法
- JavaScript之基础-8 JavaScript 数组(创建、访问、常用方法、二维数组)
- JavaScript学习笔记 创建数组,数组方法使用
- javascript的数组创建及方法
- JavaScript 创建数组的方法和基本操作
- JavaScript 创建数组的方法和基本操作
- Javascript创建空对象和空数组的几个方法和差别
- JavaScript - 用对象的方式创建数组
- JavaScript数组去重的五种方法
- Javascript中数组方法和方法的扩展
- javascript多种方法实现数组去重