【发布时间】:2020-06-29 12:52:23
【问题描述】:
假设我的代码中有这样的内容。我受到限制,因为我无法使用 2015 年之后添加到 JavaScript 的任何东西。不过,如果你知道一些非常好的东西,我还是想听听你的意见。
const map = new HashMap();
map.putAll(someData);
// let in code
let keys = map.keySet();
for (let i = 0; i < keys.length; i++) {
// Do something with each key e.g.
something(keys[i];
}
通过这些keys 的最佳方法是什么,因为我尽量避免for,因为通常有更快的方法。
【问题讨论】:
-
你可以使用
while (i < keys.length) -
我不认为原生 for 循环很慢。基于索引可能不安全,但速度通常不是问题。这是用于不同类型迭代的 jsbench 示例jsben.ch/giRjy。话虽这么说,你应该看看 forEach,速度 + 安全
-
@RahulKadukar
for循环可以通过向后迭代来安全(正如你所说的那样)。 -
对我来说,
while比使用 jsbench 的for快。只需使用while -
@RahulKadukar 谢谢,我会调查的。我最初确实想使用
forEach,但在这里使用keys是不可能的。
标签: javascript arrays