Closed HenriqueSilverio closed 10 years ago
Segue minha solução para o problema proposto:
var total = 0;
for( var i = 0; i < 1000; i++ ) {
if( i % 3 === 0 || i % 5 === 0 ) {
total += i;
}
}
console.log(total); // 233168
Segue minha solução do Projeto Euler.
http://jsbin.com/lonapohi/1/watch?js,console
idêntico aos anteriores :(
A solução do projeto Euler não tem muito o que diferenciar, mas segue uma ideia pra deixar um pouco mais performático: http://codepen.io/anon/pen/JIewg
Ou usando while: http://codepen.io/anon/pen/eIlpx
xD
O meu nada de diferente: http://jsbin.com/molak/1/edit?js,console
Segue algumas anotações que fiz, de alguns pontos que achei importante no capítulo 3.
Os tipos de JavaScript podem ser divididos em duas categorias: primitivos e objetos.
Qualquer valor em JavaScript que não seja um número, string, boolean, null ou undefined, é um objeto.
Os tipos também podem ser divididos em: tipos com métodos e sem métodos, ou mutáveis e imutáveis.
As variáveis em JavaScript são não tipadas e são declaradas com a keyword var
.
JavaScript utiliza escopo léxico, ou seja: variáveis declaradas fora de uma função são "variáveis globais" e as declaradas dentro de uma função tem "escopo de função" (visíveis apenas no corpo da função à qual foram declaradas).
Strings, Números, Booleans diferem de objetos pois suas propriedades são somente para leitura e não é possível definir novas propriedades neles.
Objetos são comparados por referência. Se quiser clonar (criar uma nova cópia) de um objeto ou array, deverá copiar explicitamente as propriedades do objeto ou dos elementos do array.
Variável global: tem escopo global, ou seja, está definida para ser usada em qualquer parte do código JavaScript.
Variável local: Variáveis declaradas dentro do corpo de uma função estão definidas apenas dentro da função. Parâmetros de função também constam como variáveis locais, ou seja, estão disponíveis apenas dentro da função a qual foram declaradas e tem precedência à variáveis globais que tem o mesmo nome.
Shallow copy (clone sem profundidade) para array e objeto.
Então, com relação ao desafio 1 fiz ele baseado no artigo dessa semana e transformei ele num objeto. Quem quiser ver, estou colocando esse e todo o código que ando fazendo daqui nesse repositório: http://goo.gl/AHosWR
Leitura do capítulos terminada e exercícios do CodeAcademy concluídos dia 27/02.
Terminada a seção do codecademy, lidos os capítulos do guia definitivo, lido o artigo e aprendir o que é expressão Regular e segue a minha resolução do projeto Euler. Agora não tenho dúvidas que vou aprender Javascript Rumo a próxima semana!!!!
http://jsfiddle.net/gfront/GcW58/
Concluída as atividades hoje no dia 01/03
Segue a resolução correta não tinha sido salvo no momento que eu enviei. http://jsfiddle.net/H3v4z/3/
@grodrigues bem o a resolução do desafio de Euler esta errada, vc tem q somar, a var i, a uma variável total a cada vez que i for múltiplo de 3 ou 5, da uma olhada nas resoluções dos outros participantes.
Terminei as tarefas dessa semana hoje, dia 01/03/2014.
Estou numa correria danada com freela para terminar, "666 trabalhos das 666 matérias" da faculdade para fazer e as tarefas do roteiro para seguir, entre outras coisas.
Mas é isso aí, missão cumprida. "Bora" pra próxima semana!
2ª Semana | Andamento das Tarefas |
---|---|
Leitura: Capítulos 3 à 5 | 100% |
Codeacademy: Secções 2 à 6 | 100% |
Desafio: Project Euler I | 20% |
@CristinaSilvaEng Show! Só uma observação: a leitura do artigo "JavaScript Objects in Detail" faz parte das tarefas da Semana 3. ;-)
Capítulo 3,4,5 do Livro ------------->OK Code Acedemy: Seção 2 até 6--->OK Desafio do Project Euler I:--------->OK Forma Normal: - http://jsbin.com/biyejelu/1/edit
function desafio(){
var result = 0,i=0;
for(;i<1000;i++)
if(i % 3 === 0 || i % 5 === 0)result += i;
return result;
}
console.log(desafio());
Forma Resumida: - http://codepen.io/anon/pen/zjBeg
var desafio = function(){
var result = i = 0;
for(;i<1000;i++)(i % 3 === 0 || i % 5 === 0) ? result += i:''; return result;
}
console.log(desafio());
Artigo JavaScript Objects in Detail: Lendo Agora e Finalizando! Let's Go :+1:
Livro JS capítulos da semana 2 (finalizado) Code Academy (finalizado) Project Euler 1- Lógica bem humilde:http://codepen.io/anon/pen/Kldaw (finalizado) JavaScript Objects - Artigo (leitura para o domingão)
Terminei os capitulos, project euler, o artigo, não deu tempo de completar o code academy.
Acho que vou ter que rever algumas questões, principalmente sobre os "Type Conversion", object-to-primitive, primitive-to-object, ..., quais operações exigem uma outra conversão.
Saber melhor o que aconte quando fazemos
[] + []
{} + []
[] + {}
{} + {}
Obrigada, @HenriqueSilverio, me sinto menos enrolada agora.
Galera, desculpa pelo atraso! Essa semana eu viajei alguns dias e depois que cheguei fiquei + 3 dias sem internet! hehe Mas consegui terminar tudo! E já vamos emendar na próxima semana =D
Tarefa | Status |
---|---|
Leitura Cap. 3, 4, 5 | ✔ |
Project Euler | ✔ |
Codecademy 2 ao 6 | ✔ |
Enviado por Samsung Mobile
-------- Mensagem original -------- De : Eric Douglas notifications@github.com Data: 02/03/2014 16h10 (GMT-03:00) Para: impJS/impAprendaJS impAprendaJS@noreply.github.com Cc: Anderson Pavia andersonaap@hotmail.com Assunto: Re: [impAprendaJS] Semana 2 (#36)
Galera, desculpa pelo atraso! Essa semana eu viajei alguns dias e depois que cheguei fiquei + 3 dias sem internet! hehe Mas consegui terminar tudo! E já vamos emendar na próxima semana =D
Tarefa Status Leitura Cap. 3, 4, 5 ✔ Project Euler ✔ Codecademy 2 ao 6 ✔ — Reply to this email directly or view it on GitHub.
Tarefa | Status |
---|---|
Leitura Cap. 3, 4, 5 | 3 ✔ 4 ✔ 5 ✔ |
Project Euler | ✔ |
Codecademy 2 ao 6 | ✖ |
Inicio: 23/02/2014 ~ Fim: 01/03/2014
Instruções: https://github.com/impJS/impAprendaJS/wiki/Semana-2
Observação: dúvidas recorrentes para esta semana deverão ser publicadas neste link.