撰寫一個可以印出命令列參數總和的程式。


提示

透過 global 的 process 物件,您可以存取到來自命令列的參數。 process 物件會把完整的命令列放到底下的 argv 屬性中,如 process.argv

請先撰寫一個單純包含底下命令的程式:

console.log(process.argv)

在命令列中輸入 node program.js ,然後再後面多輸入幾個數字作為參數,如:

$ node program.js 1 2 3

在這個範例中,程式的輸出會像底下一樣,是一個 Array (數列):

[ 'node', '/path/to/your/program.js', '1', '2', '3' ]

為了輸出這些參數的總和,您需要思考如何以迴圈的方式輪流存取這幾個參數。process.argv Array 的第一個元素永遠是「node」,而第二個元素也永遠是被執行的程式 program.js 的完整路徑,所以您需要從第三個元素(index 2)開始,依序加入來自命令列的參數,直到這個 Array 結束。

要注意的是, process.argv 的所有元素都是字串(String),而您需要把它們 轉換 成數字(Number)。您可以在 process.argv 前加上 + 或是把這個屬性傳給函式 Number() 。如 +process.argv[2]Number(process.argv[2])

learnyounode 將會在您執行 learnyounode verify program.js 的時候加入參數,所以您不用自己加上。如果不想驗證程式,只想自己嘗試執行看看,可以在終端機中輸入 learnyounode run program.js 並執行。當您使用 run 的方式執行程式的時候,您將會引入 learnyounode 為每個作業所設定好的測試環境。