Суммируйте аргументы js-файла в Node, используя Reduce - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь получить аргументы (от второго аргумента) при запуске файла js в узле, а затем суммировать их.

var args = 0;

process.argv.reduce((a, b, c) => {
    if (c > 1) {
        console.log(+a + +b);
        this.args += +a + +b;
    }
    return a
}, 0);
console.log(args)

В результате я получаю 0 как сумму при запуске узла exlearnyounode.js 12 4 6, но я ожидаю 22 * ​​1008 *

1 Ответ

0 голосов
/ 28 июня 2018

В вашем коде вы принимаете a как аккумулятор , b как элемент из коллекции, c как индекс элемента. Вместо этого вы должны просто передать только два аргумента reduce, сначала это аккумулятор, затем элемент, полученный из коллекции process.argv; он не дает индекс относительно коллекции.

Это должно сделать это:

console.log(process.argv.slice(1).reduce((acc, a) => acc + a))

slice(1) даст аргументы, кроме первого:

var arr = [0, 3, 2, 1]
console.log(arr.slice(1))
console.log(arr.slice(1).reduce((acc, a) => acc + a))
...