【问题标题】:What is the best way to go through keys? [duplicate]通过密钥的最佳方法是什么? [复制]
【发布时间】: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 &lt; keys.length)
  • 我不认为原生 for 循环很慢。基于索引可能不安全,但速度通常不是问题。这是用于不同类型迭代的 jsbench 示例jsben.ch/giRjy。话虽这么说,你应该看看 forEach,速度 + 安全
  • @RahulKadukar for 循环可以通过向后迭代来安全(正如你所说的那样)。
  • 对我来说,while 比使用 jsbench 的 for 快。只需使用while
  • @RahulKadukar 谢谢,我会调查的。我最初确实想使用forEach,但在这里使用keys 是不可能的。

标签: javascript arrays


【解决方案1】:

For循环并不慢!,如果你想使用另一种方式,你可以使用ForEach循环:

   var object = {
        1: "- something",
        2: "- something else",
    };
    
    Object.keys(object).forEach(function (key) {
        console.log(key, object[key]);
    });

【讨论】:

  • 这是评论而非答案
  • 为什么不是?我提供了另一种循环键的方法。
  • @HANNANI 问题询问通过密钥的最佳方法是什么,您提供了“一种方法”,它可能不是最好的方法。您没有提供任何基准或解释为什么您的方法是最快的,因此这不是答案。
猜你喜欢
  • 2016-11-20
  • 1970-01-01
  • 2014-01-15
  • 2020-10-05
  • 2018-02-16
  • 1970-01-01
  • 2011-11-18
  • 2011-05-20
相关资源
最近更新 更多