node.js - for 循环与 foreach

标签 node.js for-loop foreach

我在编程方面还很陌生,我很难希望 for/foreach 之间有所不同。在更技术性的感叹中,for each 循环计算它需要多少次 - 与下面的代码不同。

假设我是这样一个 for 循环的样本:

var i = result = 0;
for (var i = 2; i < process.argv.length; i++) {
    result = result + Number(process.argv[i]);
}

console.log(result);

如果是 foreach 语句,这段代码会发生什么变化?解释对吗?或者还有更多吗?

提前致谢。

最佳答案

foreach 循环遍历数组中的所有元素,然后将它们一一提供给您,而无需对带有“i”的迭代变量进行任何处理。例如,您可以这样做:

var result = 0;
process.argv.forEach(function(element){
   result = result + element;
});

您的代码与此代码之间存在差异:您的代码跳过了前两个元素,因为“i”从 2 开始。这在 foreach 循环中更难做到,如果需要,您应该坚持使用for 循环。

foreach 循环会为您设置计数器。方便,但不太灵活。它总是从第一个元素开始,到最后一个元素结束。需要注意的一件很酷的事情是我们也不必做任何像“[i]”这样的事情。数组中的元素被拉出并传递给我们的函数。

总而言之,当您需要查看数组中的每个元素时,foreach 循环只是一种简化的 for 循环。

我个人认为 node.js 中的 foreach 循环很丑陋,因为它不是真正的语句,只是附加到数组的函数。我更喜欢它们在像 php 这样的语言中的样子,它们是语言的一部分:

$result = 0;
foreach ($process as $element) {
    $result = $result + $element;
}

但这只是个人品味。

关于node.js - for 循环与 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20916555/

相关文章:

node.js - for循环在nodejs中无法正常工作

javascript - 使用 readline 在 javascript 中进行一系列用户输入,其中相应的问题存储在数组中

javascript - 如何在 <td></td> 的每四个循环项之后添加 <tr></tr>

c++ - 在 'for' 循环中递增 1 时使用 > (<) 而不是 != 是否有技术原因?

javascript - 对于每个 div 加载图像加载图像编号两次

Java Velocity循环在每3个项目周围添加div

javascript - 尝试在 Windows 7 上安装 Node.js 时出现 'DLL' 错误

javascript - Sequelize 找不到变量

node.js - 错误 : ENOENT: no such file or directory, 打开 'F:\login\uploads\2019-05-12T18:23:38.048Z20190319_214122.jpg'

javascript - 如何将消息从 node.js 服务器发送到 Android 应用程序?