【问题标题】:How to iterate through a JavaScript string without using charAt(), or does it even matter?如何在不使用 charAt() 的情况下遍历 JavaScript 字符串,或者它甚至重要吗?
【发布时间】:2014-05-03 21:31:14
【问题描述】:

JavaScript n00b 在这里。我正在制作的网页中有以下代码块:

    for (var k = 0, n = startingText.length; k < n; ++k)
    {
        if (startingText[k] in map1)
            ++map1[startingText[k]];
        else
            map1[startingText[k]] = 1;
    }

但是,我认为这可以而且应该进行优化。当我按顺序遍历其元素时,我不想在startingText 上调用访问运算符。还是有关系?我在尝试学习 JavaScript 之前学习了 C++,所以我的直觉认为一定存在一些 JavaScript 等价物,相当于遍历指向 startingText 字符的指针并取消引用它们以获取它们的值。

【问题讨论】:

标签: javascript


【解决方案1】:

不,没关系。即使您的for 循环也有过早的不必要的优化:只需使用string.length。不要缓存该值。

for (var i = 0; i < startingText.length; ++i) {
  var ch = startingText[i];

  // ...
}

JavaScript 不是 C++,它具有完全不同的性能特征。尝试应用 C++/特定于指针的优化不会产生明显的好处,只会产生不必要的复杂代码。

我认为这可以而且应该优化

你的假设是错误的;如果您发现它实际上是性能瓶颈,则应针对速度进行优化。否则,应该针对可维护性/可读性进行优化。

【讨论】:

    猜你喜欢
    • 2014-09-20
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多