Tag Archives: process

Node.JS – Algoritmos

Onde os fracos não tem vez!

#1 – Somar Argumentos

Iniciando a saga Algoritmos NodeJS, a missão de hoje é aprender como criar um algoritmo que receba argumentos de linha de comando com um ou mais números e imprimir o total no console. Vamos lá:

node_algo_1_somarargs

Executando o projeto temos este resultado. Veja que estou passando 4 argumentos e o e retornando a soma deles.

O Projeto

Para criar este app irei utilizar a estrutura simples para apps NodeJS.

  • Nome : Algo_1_SomarArgs
  • Arquivo : App.js
  • Template : não
  • Referências : não

Pronto! Já temos um novo projeto com uma estrutura será criada.

Etapa 1: NodeJSApp/app.js

Agora vamos à solução.

var length = process.argv.length,
    sum = 0;

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

console.log(sum);

Linha de raciocínio

O NodeJS nos permite acessar os args da linha de comando via objeto global process. Esse objeto tem a propriedade argv, um array contendo os args da linha de comando. Veja, crie um app.js:

console.log(process.argv);

Até aqui nada demais. Apenas um console log contendo uma informação.

Agora execute o programa:

node app.js 1 2 3 4

A saída do programa será:

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

node_algo_1_img1

O objetivo do algoritmo é fazer um “loop” através destes números de args e somá-los, exibindo a quantidade de argumentos passados ao programa.

Os elementos de process.argv:

  • O primeiro elemento é sempre node
  • O segundo é o path do arquivo

Então, o algoritmo deve iniciar a partir do terceiro elemento e contar cada item até o final do array.

Não esqueça! Todos os elementos de process.argv são strings, então é preciso converter os valores para números. Faça process.argv[i] ou Number(process.argv[i]).

Conclusão

Até aqui é o básico de qualquer programação baseada em Node.

Este é um algoritmo inicial interessante, pois dominar essa aplicação trivial ambiciona novas experiências. Além disso, manipula-se um bocado sobre a tecnologia e raciocínio lógico.