【问题标题】:Javascript - Continue statement not working?Javascript - 继续声明不起作用?
【发布时间】:2014-11-25 03:23:45
【问题描述】:

我目前正在学习 breakcontinue 语句。它打印第一个数组,第二个数组像它假设的那样运行警报,但是当我使用 continue 语句时,第三个数组没有运行。也许我做得不对?对新手的一些指导会很好。

我正在使用 JSBin 来运行它。

附言我正在从“Begining Javascript”一书中学习

谢谢

var n = [233, "john", 432];
var nIndex;

for (nIndex in n) {
    if (isNaN(n[nIndex])) {
        alert(n[nIndex] + " is not a number");
        continue;
    }
    document.write(n[nIndex] + " ");
}

【问题讨论】:

  • 我在您的代码中没有发现任何问题。它工作正常。
  • 仅供参考,您永远不应该使用for (x in y) 迭代javascript 数组,因为这将迭代数组的所有可枚举properties,而不仅仅是可能不包含数组元素属性的数组元素。您应该使用.forEach()for (var i = 0; i < array.length; i++)
  • 您希望看到什么?我们看到 '233' 被写入控制台,然后出现一个警告框说 'john is not a number',然后 432 再次写入控制台。
  • 我这边一切都很好。
  • 在哪个浏览器中?请注意,for..in 不一定以任何特定顺序遍历属性。

标签: javascript html break continue statements


【解决方案1】:

这就是迭代数组元素的方式:

var data = [233, "john", 432];

for (var i = 0; i < data.length; ++i) {
    if (isNaN(data[i])) {
        alert(data[i] + " is not a number");
        continue;
    }
    document.write(data[i] + " ");
}

顺便说一句,您可以删除 continue 语句,而在备用指令中使用 else

    var data = [233, "john", 432];

    for (var i = 0; i < data.length; ++i) {
        if (isNaN(data[i])) {
            alert(data[i] + " is not a number");
        } else {
            document.write(data[i] + " ");
        }
    }

这在逻辑上是等价的,您可能会发现它更容易阅读。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 2013-01-28
    • 2015-08-13
    • 2014-01-25
    • 2016-05-02
    • 1970-01-01
    相关资源
    最近更新 更多