宝贝步骤Node.js程序打印不确定的结果

时间:2015-01-22 18:38:39

标签: javascript node.js

我正在研究“learnyounode”的Baby Steps部分,这是一个交互式的Node.js教程。

编写一个程序,接受一个或多个数字作为命令行参数,并将这些数字的总和打印到控制台(stdout)。

由于我之前了解JavaScript,我认为这很简单:

var sum = 0;
for (var i = 2; i < process.argv.length; i++) {
  console.log('Adding ' + process.argv[i]);
  sum += Number(process.argv[i]);
}

console.log(sum)

我看不出这段代码有什么问题,但结果对我来说似乎是不确定的!

d:\repos\github\damd\learnyounode>learnyounode run baby_steps.js 1 2 3
Adding 1
Adding 72
Adding 45
Adding 32
150

d:\repos\github\damd\learnyounode>learnyounode run baby_steps.js
Adding 22
Adding 41
Adding 85
Adding 38
186

d:\repos\github\damd\learnyounode>learnyounode run baby_steps.js 10 20 30
Adding 60
Adding 25
Adding 96
Adding 24
Adding 76
Adding 96
Adding 21
Adding 53
Adding 6
Adding 51
Adding 87
Adding 29
Adding 2
Adding 21
Adding 28
Adding 47
Adding 18
Adding 89
829

这里发生了什么?我在Windows 7上使用Node.js v0.10.34。

2 个答案:

答案 0 :(得分:1)

运行功能中的learnyounode提供了自己的参数(您不知道),而不会被要求并忽略您自己的参数。

你应该运行你的文件,调用这样好的节点可执行文件:

node baby_steps.js

而不是调用learnyounode可执行文件:

learnyounode run baby_steps.js

答案 1 :(得分:-1)

请注意,验证程序需要非确定性值... 也许这个练习只是想用输入作为向量索引号(方向)  无论自身价值如何。

这些数字看起来不确定的原因可能是 argvs [] 向量用于携带环境的非静态值(也就是你在索引零上运行节点)。

请记住, learnyounode run 功能可以通过随机输入来为您提供测试环境。

无论如何,在Github上有一个很棒的演练:

https://github.com/leochilds/learnyounode-walkthrough