访问大型数组中元素的更快方法?
Quicker way to access element in a large array?
当我这样做时,我的程序的运行时间需要一段时间:array[index]
我相信这是因为“数组”是一个非常大的数组,加载该数组需要一段时间。有没有办法在加载时遍历数组,一旦找到“索引”,它就会停止加载?
我的理论是你必须等待整个数组加载完毕才能遍历它,但我不确定是否有其他方法(我也考虑过映射和指针,但这似乎是同一个问题)
关于如何使用大型数组使我的运行速度更快的任何想法?
编辑:我的问题的代码:
function myFunction(index) {
array = ["702-123-456", "702-234-567",...]
return array[index];
}
其中有 2000 个 phone 个数字。一旦找到数组[索引](索引可以随着索引传递给函数而改变),就会返回数字。
我已经测试了通过 array
循环的不同方法,似乎 filter 方法的性能最高:
const array = [ 1, 2, 3];
for(i = 0; i < array.length; i++){
console.log(array[i]); // 0.719ms
}
array.forEach(item => console.log(item)); // 0.236ms
array.map(item => console.log(item)); // 0.066ms
array.filter(item => console.log(item)); // 0.056ms
您还可以使用 sort() 方法,该方法速度更快,具体取决于您的用例。
array.sort(a => console.log(a)); // 0.046ms
当我这样做时,我的程序的运行时间需要一段时间:array[index] 我相信这是因为“数组”是一个非常大的数组,加载该数组需要一段时间。有没有办法在加载时遍历数组,一旦找到“索引”,它就会停止加载?
我的理论是你必须等待整个数组加载完毕才能遍历它,但我不确定是否有其他方法(我也考虑过映射和指针,但这似乎是同一个问题)
关于如何使用大型数组使我的运行速度更快的任何想法?
编辑:我的问题的代码:
function myFunction(index) {
array = ["702-123-456", "702-234-567",...]
return array[index];
}
其中有 2000 个 phone 个数字。一旦找到数组[索引](索引可以随着索引传递给函数而改变),就会返回数字。
我已经测试了通过 array
循环的不同方法,似乎 filter 方法的性能最高:
const array = [ 1, 2, 3];
for(i = 0; i < array.length; i++){
console.log(array[i]); // 0.719ms
}
array.forEach(item => console.log(item)); // 0.236ms
array.map(item => console.log(item)); // 0.066ms
array.filter(item => console.log(item)); // 0.056ms
您还可以使用 sort() 方法,该方法速度更快,具体取决于您的用例。
array.sort(a => console.log(a)); // 0.046ms