数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多少

问题

数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多少

答案

JavaScript 没有真正意义上的数组,所有的数组其实是对象,其“索引”看起来是数字,其实会被转换成字符串,作为属性名(对象的 key)来使用。所以无论是取第 1 个还是取第 10 万个元素,都是用 key 精确查找哈希表的过程,其消耗时间大致相同。
为了更加清楚一点还是使用js来一段代码比较清晰

var arr = new Array(100000).fill(null)
console.time('first')
arr[0]
console.timeEnd('first')
console.time('end')
arr[99999]
console.timeEnd('end')
/*
first: 0.00390625ms
end: 0.0029296875ms
*/

上面测试代码打印结果时间基本可以忽略不计
如果觉得还不够,找了一个测试jsperf。
测试结果:https://jsperf.com/getelemperformance/1
想要更加仔细研究下javascript的数组,可以参考一下这篇文章讲述的比较清晰深究 JavaScript 数组

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,298评论 0 3
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,068评论 0 0
  •   自从 2000 年以来,Web 开发方面的种种规范、条例正在高速发展。Web 开发过去曾是荒芜地带,里面东西还...
    霜天晓阅读 530评论 0 1
  • 一. Java基础部分.................................................
    wy_sure阅读 3,835评论 0 11
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,138评论 1 32