(2)命令行參數(shù)

2018-02-24 16:05 更新

要求

編寫(xiě)一個(gè)簡(jiǎn)單的程序,使其能接收一個(gè)或者多個(gè)命令行參數(shù),并且在終端(標(biāo)準(zhǔn)輸出 stdout)中打印出這些參數(shù)的總和。

提示

可以通過(guò) process 這個(gè)全局對(duì)象來(lái)獲取命令行中的參數(shù)。process 對(duì)象 擁有一個(gè)名為 argv 的屬性,該屬性是一個(gè)數(shù)組,數(shù)組中包含了整條命令的所有部分。首先,請(qǐng)先編寫(xiě)一個(gè)包含如下帶簡(jiǎn)易代碼的程序來(lái)熟悉一下:

console.log(process.argv)

通過(guò)執(zhí)行命令 node program.js 并在后面多加幾個(gè)參數(shù),來(lái)運(yùn)行我們的程序,比如:

$ node program.js 1 2 3

這樣,就會(huì)得到這樣一個(gè)數(shù)組:

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

需要考慮的問(wèn)題是,如何去循環(huán)遍歷這些代表數(shù)字的參數(shù),從而得到他們的總和。process.argv數(shù)組的第一個(gè)元素永遠(yuǎn)都會(huì)是node,并且第二個(gè)參數(shù)總是指向程序的路徑,所以,應(yīng)該從第三個(gè)元素(index 是 2)開(kāi)始,依次累加,直到數(shù)組末尾。

需要注意的是,所有 process.argv 中的數(shù)組的元素都是字符串類(lèi)型的,因此,需要將它們強(qiáng)制轉(zhuǎn)換成數(shù)字??梢酝ㄟ^(guò)加上 + 前綴,或者將其傳給 Number() 來(lái)解決。例如: +process.argv[2] 或者 Number(process.argv[2])。

代碼

var result = 0

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

console.log(result)
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)