美文网首页让前端飞Web前端之路
数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多

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

作者: 青山旁小溪边 | 来源:发表于2019-11-01 13:31 被阅读0次

问题

数组里面有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 数组

相关文章

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

    问题 数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多少 答案 JavaScript 没有真正意义...

  • 数组其他问题

    1. 数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多少 2. for…in 与 for…of 的区别

  • 归并排序和快速排序的衍生问题(二)

    取数组中第n大的元素 取数组中第n大的元素这个问题,相信大家在学习数据结构这门课中都遇到过。通常我们会使用某一排序...

  • iOS 从数组随机取元素

    数组随机取元素 — 不考虑重复情况 数组随机取元素 — 去除重复元素

  • 算法通关2.数组和链表

    数组 数组:内存里连续的一段存储区域 取:取元素时间复杂度为O(1) 插入:需要挪动插入位置后面的元素,时间复杂度...

  • 静态链表

    1.用数组描述的链表叫做静态链表,每个元素由数据域data和游标cur组成2.对数组第一个元素和第二个元素特殊处理...

  • 排序算法

    常见的排序算法 性能比较 直接插入排序 思路:取数组中第i(i >= 1)个元素和第i-1个元素对比,若第i个元素...

  • C语言实战开发篇-5 一维数组

    数组 1.概念:数组是由单一类型的数据元素组成的有序数据集合,每个数据元素使用数组名和下标来表示。数组中的数据元素...

  • 【初级排序算法】选择排序

    选择排序找到数组中最小的元素,然后将它和数组的第一个元素交换位置(如果第一个元素就是最小的元素就自己和自己交换)。...

  • 数组

    创建数组 arr.length 表示数组里面有多少个元素 获取数组元素 修改数组元素 arr.indexOf(se...

网友评论

    本文标题:数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多

    本文链接:https://www.haomeiwen.com/subject/ihpfbctx.html