小编Din*_*ino的帖子

Javascript:尽管数组稀疏,indexOf 在高索引上还是很慢?

在我的网站上运行一些测试时,我最终得到了一个只有 10 个字符串的数组,但一个索引非常高(600 000 000)。

在这个数组上运行 indexOf 非常慢,每次调用都会使整个选项卡冻结几秒钟。

当我尝试寻找有关此的信息时,大多数人似乎都在说现代 Javascript 实现使用稀疏数组,这应该不是问题。我正在使用最新的 Chrome 62。

该问题实际上可以在开发人员工具的控制台中重现。如果您尝试运行以下代码:

test = [];
test[600000000] = "test";
test.indexOf("test");
Run Code Online (Sandbox Code Playgroud)

您将看到控制台需要几秒钟才能返回索引,这表明 Javascript 正在循环遍历从 0 到 600000000 的每个索引,而不是直接跳到一个元素。这是正常行为吗?

javascript arrays performance google-chrome indexof

4
推荐指数
1
解决办法
1281
查看次数

标签 统计

arrays ×1

google-chrome ×1

indexof ×1

javascript ×1

performance ×1