Comments (9)
Mas pensando aqui, Pompeu. Cara, mas será que se fizer dos dois jeitos, não vai dar na mesma? Vou te mostrar o porquê.
module.exports.media = function () { // Pega cada item que veio por parâmetro e coloca em uma posição diferente em um array. const args = [...arguments]; // Soma todos os itens. const valoresSomados = args.reduce((acumulador, itemAtual) => acumulador + itemAtual, 0); // Faz o cáculo da média em si e retorna. return (valoresSomados / args.length); };
Então desse modo, na implementação já colocaria tudo em um array, então não faria muito sentido permitir o usuário mandar um array de valores ou apenas os valores separados por vírgula, porque no final das contas, vai dar no mesmo.
Pensando assim, o método então receberia apenas os valores que o usuário gostaria de cácular a média e obviamente, todos tem de ser do tiponúmero
.O que acham, @lucaspompeun e @leonelsanchesdasilva ?
A implementação considerando número variável de argumentos é possível, mas vai aumentar o tratamento dos argumentos.
Nada me impediria, por exemplo, de passar uma série indefinida de arrays numéricos, o que já faria o método falhar na hora de fazer a redução. Um .flat()
de todos os arrays antes teria que ser feito.
Eu faria media()
apenas aceitando um vetor único de números. Se houver necessidade de implementar uma versão mais robusta, isso pode ser feito depois.
from egua.
@barbozafernando positivo, é isso mesmo. Nesses caso o argumento precisa ser uma lista.
from egua.
Pompeu, pensei em duas formas de implementar essa função.
- A primeira, é o cara chamando
media()
e passando quantos parâmetros quiser pra fazer a média.
Seria algo como:
var mat = importar('eguamat');
escreva(mat.media(2, 5, 10, 20));
// 9.25
- A segunda, seria como vc falou. O cara já passar uma lista pra fazer o cálculo.
Daria pra implementar os dois modos. O que acha, @lucaspompeun ?
from egua.
Mas pensando aqui, Pompeu. Cara, mas será que se fizer dos dois jeitos, não vai dar na mesma? Vou te mostrar o porquê.
module.exports.media = function () { // Pega cada item que veio por parâmetro e coloca em uma posição diferente em um array. const args = [...arguments]; // Soma todos os itens. const valoresSomados = args.reduce((acumulador, itemAtual) => acumulador + itemAtual, 0); // Faz o cáculo da média em si e retorna. return (valoresSomados / args.length); };
Então desse modo, na implementação já colocaria tudo em um array, então não faria muito sentido permitir o usuário mandar um array de valores ou apenas os valores separados por vírgula, porque no final das contas, vai dar no mesmo.
Pensando assim, o método então receberia apenas os valores que o usuário gostaria de cácular a média e obviamente, todos tem de ser do tiponúmero
.O que acham, @lucaspompeun e @leonelsanchesdasilva ?
Eu particularmente gosto que tenha como entrada um vetor pois ajuda o usuário a entender uma das aplicações de vetores. Esse é o motivo pelo qual gosto de ter o vetor como entrada. O que vocês acham?
from egua.
Mas pensando aqui, Pompeu. Cara, mas será que se fizer dos dois jeitos, não vai dar na mesma? Vou te mostrar o porquê.
module.exports.media = function () { // Pega cada item que veio por parâmetro e coloca em uma posição diferente em um array. const args = [...arguments]; // Soma todos os itens. const valoresSomados = args.reduce((acumulador, itemAtual) => acumulador + itemAtual, 0); // Faz o cáculo da média em si e retorna. return (valoresSomados / args.length); };
Então desse modo, na implementação já colocaria tudo em um array, então não faria muito sentido permitir o usuário mandar um array de valores ou apenas os valores separados por vírgula, porque no final das contas, vai dar no mesmo.
Pensando assim, o método então receberia apenas os valores que o usuário gostaria de cácular a média e obviamente, todos tem de ser do tiponúmero
.
O que acham, @lucaspompeun e @leonelsanchesdasilva ?A implementação considerando número variável de argumentos é possível, mas vai aumentar o tratamento dos argumentos.
Nada me impediria, por exemplo, de passar uma série indefinida de arrays numéricos, o que já faria o método falhar na hora de fazer a redução. Um
.flat()
de todos os arrays antes teria que ser feito.Eu faria
media()
apenas aceitando um vetor único de números. Se houver necessidade de implementar uma versão mais robusta, isso pode ser feito depois.
Eu estava fazendo exatamente isso. Estava tentando implementar desse jeito aí, e cara, terei que fazer vários tratamentos nos argumentos. No momento, talvez não seja necessário mesmo. Concordo em aceitar apenas o array. O que acha, Pompeu?
from egua.
Podemos ficar com o argumento único de array.
from egua.
@lucaspompeun, essa média seria o cálculo de média normal mesmo, né? Tipo, se eu passo 5 valores, somo todos e divido por 5. Seria isso?
from egua.
Acho perfeito fazer os dois.
from egua.
Mas pensando aqui, Pompeu. Cara, mas será que se fizer dos dois jeitos, não vai dar na mesma? Vou te mostrar o porquê.
module.exports.media = function () {
// Pega cada item que veio por parâmetro e coloca em uma posição diferente em um array.
const args = [...arguments];
// Soma todos os itens.
const valoresSomados = args.reduce((acumulador, itemAtual) => acumulador + itemAtual, 0);
// Faz o cáculo da média em si e retorna.
return (valoresSomados / args.length);
};
Então desse modo, na implementação já colocaria tudo em um array, então não faria muito sentido permitir o usuário mandar um array de valores ou apenas os valores separados por vírgula, porque no final das contas, vai dar no mesmo.
Pensando assim, o método então receberia apenas os valores que o usuário gostaria de cácular a média e obviamente, todos tem de ser do tipo número
.
O que acham, @lucaspompeun e @leonelsanchesdasilva ?
from egua.
Related Issues (20)
- tempo.tempo() imprime data em inglês HOT 1
- tempo.horario() não faz sentido HOT 1
- Extensão para VSCode HOT 3
- Corrigir erro apontado pelo interpretador que não está claro
- Mais issues do github para o evento hacktoberfest HOT 1
- Corrigindo exemplos de dicionários HOT 2
- Corrigir import na errado HOT 1
- Remover body das fontes por bugs que aparecem no codeflask
- Melhorar mensagem de erro para método inexistente na chamada
- Integração com o GitHub
- Self-hosting? HOT 1
- Modernização de aplicação front-end HOT 1
- Ponteiro não condiz com o input de texto HOT 1
- Sugestão de complementação automática ao digitar HOT 1
- Sugestão: Usar ferramenta como o EditorConfig para padronizar o código. HOT 2
- Bug: É possível declarar funções sem identificador no escopo global. HOT 6
- Biblioteca para manipulação de textos. HOT 2
- Criar sistema de requisição
- Criar testes de uso do try usando erros HOT 1
- Sugestão: poder salvar o arquivo na IDE online HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from egua.