【发布时间】:2021-05-26 10:12:34
【问题描述】:
当我这样做时,我的程序的运行时间需要一段时间:array[index] 我相信这是因为“数组”是一个非常大的数组,加载数组需要一段时间。有没有办法通过数组作为加载,一旦找到“索引”,它就会停止加载?
我的理论是,您必须等待整个数组加载完毕才能通过它,但我不确定是否还有其他方法(我也考虑过映射和指针,但这似乎是同一个问题)
关于如何使用大型数组使我的运行时更快有什么想法吗?
编辑:我的问题的代码:
function myFunction(index) {
array = ["702-123-456", "702-234-567",...]
return array[index];
}
那里有 2000 个电话号码。一旦找到array[index](索引可以随着索引被传递给函数而改变),就会返回该数字。
【问题讨论】:
-
好吧,我认为您无法控制将数组加载到 RAM 中。这需要操作系统注意,一旦完成,只有您可以访问阵列。也许将数组从逻辑上分解为多个可能会对您有所帮助。或者你也可以重新考虑使用的数据结构。
-
我明白了。如果我对数组进行切片,您是否认为这是同样的问题,因为我需要等待数组加载然后切片?虽然我认为问题在于我必须等待数组加载,这会导致运行时间过长,但我不确定这是否是我的问题
-
有许多不同的方法来搜索/排序一个数组。在 google 上搜索“javascript 搜索排序算法”并测试最适合您的方法。如果您不提供数据结构的外观,我们很难提供帮助。
-
@Spangle 如果我的运行时间很大的原因是因为在我执行 array[index] 时正在加载“array”?或者是因为它正在访问使它变慢的索引?抱歉,我对好的性能不太熟悉。如果您认为这是因为访问索引使其变慢,那么是的,我应该以某种方式操纵数据。但如果是因为正在加载数组,我不确定。
-
我建议做一个测试,看看加载数组需要多长时间。得到它需要的时间。之后,再做一次测试,看看在数组中找到项目需要多少时间。数据来自api吗? javascript也是单线程的,需要考虑。即您不会同时搜索数组并加载它。
标签: javascript arrays runtime