SlideShare a Scribd company logo
1 of 13
Download to read offline
JavaScript: For-in e arrays^n
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 12, 03-11-2011
Estrutura de repetição: for-in
    variável que no decorrer da
   execução do ciclo vai tomar
   todos os valores dos índices
              do objeto           array que se pretende iterar
                                      todos os elementos


   for ( index in nomeArray )
   {
     // código a executar
   }
Estrutura de repetição: for-in (exemplo)

 var msg = “Nelo, mulher, as tuas gajas são: “;
 for (cont = 0; cont <= gajasNelo.length - 1; cont++) {
     msg = msg + gajasNelo[cont] + “, “;
 }
 alert (msg);


 // versão com for-in
 var gajasNelo = new Array("Jair", "Marcolino", "Marco");
 for (var indexGaja in gajasNelo) {
     msg = msg + gajasNelo[indexGaja] + ", ";
 }
 alert (msg);
Estuturas de dados ainda mais complexas :)

• E se um elemento de um array não for na realidade um elemento de tipo
  simples?

• Exemplo: O Nelo não pode guardar só o nome das suas gajas. Ele precisa
  guardar o número de telemóvel e o email (um dia ele saberá para que
  serve...)!

 var gajasNelo = new Array();
 gajasNelo[0] = “Asdrubal, 961111111, asdrubal@gmail.com”;
 gajasNelo[1] = “Porfirio, 931111111, porfirio@sapo.pt”;
 gajasNelo[2] = “Zacarias, 911111111, zacarias@hotmail.com”;
Problemas com solução anterior?

• Elementos não são unidades de informação

• Acesso a unidades de informação não pode ser realizado de uma forma
  simples e sistemática

• “Voltamos ao problema de misturar alhos com bugalhos!”



• Então como resolver?

  • Pista para nova solução: “Cada elemento de um array pode ter associado
    um tipo de dados complexo”
Arrays bidimensionais

gajasNelo
        nome       telefone         email
0   Asdrubal      961111111   asdrubal@gmail.com


1   Porfirio      931111111   porfirio@sapo.pt


2   Zacarias      911111111   zacarias@hotmail.com
Arrays bidimensionais

gajasNelo
           0            1              2
0   Asdrubal      961111111   asdrubal@gmail.com


1   Porfirio      931111111   porfirio@sapo.pt


2   Zacarias      911111111   zacarias@hotmail.com
Arrays bidimensionais

gajasNelo

          0             1             2
0   Asdrubal      961111111   asdrubal@gmail.com



          0             1             2
1   Porfirio      931111111   porfirio@sapo.pt



          0             1             2
2   Zacarias      911111111   zacarias@hotmail.com
Arrays bidimensionais: declaração

var gajasNelo = new Array();
gajasNelo[0] = new Array("Asdrubal","961111111","asdrubal@gmail.com");
gajasNelo[1] = new Array("Porfirio","931111111","porfirio@sapo.pt");
gajasNelo[2] = new Array("Zacarias","911111111","zacarias@hotmail.com");


// Outra possibilidade
var gajasNelo = new Array();
gajasNelo[0] = ["Asdrubal","961111111","asdrubal@gmail.com"];
gajasNelo[1] = ["Porfirio","931111111","porfirio@sapo.pt"];
gajasNelo[2] = ["Zacarias","911111111","zacarias@hotmail.com"];
Arrays bidimensionais: declaração

// E ainda outra possibilidade
var gajasNelo = new Array();
  gajasNelo[0] = new Array();
    gajasNelo[0][0] = "Asdrubal";
    gajasNelo[0][1] = "961111111";
    gajasNelo[0][2] = "asdrubal@gmail.com";
  gajasNelo[1] = new Array();
    gajasNelo[1][0] = "Porfirio";
    ...
Arrays bidimensionais
gajasNelo
       0                     1                 2
0   Asdrubal         961111111        asdrubal@gmail.com


1   Porfirio         931111111        porfirio@sapo.pt


2   Zacarias         911111111        zacarias@hotmail.com


alert(gajasNelo[1]); // ??
alert(gajasNelo[0][2]); // ??
alert(gajasNelo[2][1]); // ??
gajasNelo[1][0] = “Marcão”; // ??
gajasNelo[2][2] = gajasNelo[1][2]; // ??
alert(gajasNelo.length); // ??
alert(gajasNelo[1].length); // ??
Arrays multidimensionais

• Os princípios aplicados para a criação de um array bidimensional são válidos
  para um array de qualquer dimensão;

• num array bidimensional, cada elemento pode ser também um array,
  resultando num array tridimensional;

• e esta lógica pode continuar a ser aplicada...

• Raramente se recorre a arrays com mais do que 3 dimensões porque
  começam a ser demasiado complexos de visualizar e de difícil manutenção.
Arrays bidimensionais: exemplo

var tabuada = new Array();
    for (var linha=1; linha<=10;linha++){
      tabuada[linha]=new Array();
      for (var coluna = 1; coluna<=10;coluna++){
          tabuada[linha][coluna]=linha*coluna;
      }
}


alert(tabuada[5][5]); // ??
alert(tabuada[0][5]); // ??

More Related Content

More from Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 

More from Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Recently uploaded

BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarIedaGoethe
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 

Recently uploaded (20)

BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogar
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 

LabMM3 - Aula teórica 12

  • 1. JavaScript: For-in e arrays^n Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 12, 03-11-2011
  • 2. Estrutura de repetição: for-in variável que no decorrer da execução do ciclo vai tomar todos os valores dos índices do objeto array que se pretende iterar todos os elementos for ( index in nomeArray ) { // código a executar }
  • 3. Estrutura de repetição: for-in (exemplo) var msg = “Nelo, mulher, as tuas gajas são: “; for (cont = 0; cont <= gajasNelo.length - 1; cont++) { msg = msg + gajasNelo[cont] + “, “; } alert (msg); // versão com for-in var gajasNelo = new Array("Jair", "Marcolino", "Marco"); for (var indexGaja in gajasNelo) { msg = msg + gajasNelo[indexGaja] + ", "; } alert (msg);
  • 4. Estuturas de dados ainda mais complexas :) • E se um elemento de um array não for na realidade um elemento de tipo simples? • Exemplo: O Nelo não pode guardar só o nome das suas gajas. Ele precisa guardar o número de telemóvel e o email (um dia ele saberá para que serve...)! var gajasNelo = new Array(); gajasNelo[0] = “Asdrubal, 961111111, asdrubal@gmail.com”; gajasNelo[1] = “Porfirio, 931111111, porfirio@sapo.pt”; gajasNelo[2] = “Zacarias, 911111111, zacarias@hotmail.com”;
  • 5. Problemas com solução anterior? • Elementos não são unidades de informação • Acesso a unidades de informação não pode ser realizado de uma forma simples e sistemática • “Voltamos ao problema de misturar alhos com bugalhos!” • Então como resolver? • Pista para nova solução: “Cada elemento de um array pode ter associado um tipo de dados complexo”
  • 6. Arrays bidimensionais gajasNelo nome telefone email 0 Asdrubal 961111111 asdrubal@gmail.com 1 Porfirio 931111111 porfirio@sapo.pt 2 Zacarias 911111111 zacarias@hotmail.com
  • 7. Arrays bidimensionais gajasNelo 0 1 2 0 Asdrubal 961111111 asdrubal@gmail.com 1 Porfirio 931111111 porfirio@sapo.pt 2 Zacarias 911111111 zacarias@hotmail.com
  • 8. Arrays bidimensionais gajasNelo 0 1 2 0 Asdrubal 961111111 asdrubal@gmail.com 0 1 2 1 Porfirio 931111111 porfirio@sapo.pt 0 1 2 2 Zacarias 911111111 zacarias@hotmail.com
  • 9. Arrays bidimensionais: declaração var gajasNelo = new Array(); gajasNelo[0] = new Array("Asdrubal","961111111","asdrubal@gmail.com"); gajasNelo[1] = new Array("Porfirio","931111111","porfirio@sapo.pt"); gajasNelo[2] = new Array("Zacarias","911111111","zacarias@hotmail.com"); // Outra possibilidade var gajasNelo = new Array(); gajasNelo[0] = ["Asdrubal","961111111","asdrubal@gmail.com"]; gajasNelo[1] = ["Porfirio","931111111","porfirio@sapo.pt"]; gajasNelo[2] = ["Zacarias","911111111","zacarias@hotmail.com"];
  • 10. Arrays bidimensionais: declaração // E ainda outra possibilidade var gajasNelo = new Array(); gajasNelo[0] = new Array(); gajasNelo[0][0] = "Asdrubal"; gajasNelo[0][1] = "961111111"; gajasNelo[0][2] = "asdrubal@gmail.com"; gajasNelo[1] = new Array(); gajasNelo[1][0] = "Porfirio"; ...
  • 11. Arrays bidimensionais gajasNelo 0 1 2 0 Asdrubal 961111111 asdrubal@gmail.com 1 Porfirio 931111111 porfirio@sapo.pt 2 Zacarias 911111111 zacarias@hotmail.com alert(gajasNelo[1]); // ?? alert(gajasNelo[0][2]); // ?? alert(gajasNelo[2][1]); // ?? gajasNelo[1][0] = “Marcão”; // ?? gajasNelo[2][2] = gajasNelo[1][2]; // ?? alert(gajasNelo.length); // ?? alert(gajasNelo[1].length); // ??
  • 12. Arrays multidimensionais • Os princípios aplicados para a criação de um array bidimensional são válidos para um array de qualquer dimensão; • num array bidimensional, cada elemento pode ser também um array, resultando num array tridimensional; • e esta lógica pode continuar a ser aplicada... • Raramente se recorre a arrays com mais do que 3 dimensões porque começam a ser demasiado complexos de visualizar e de difícil manutenção.
  • 13. Arrays bidimensionais: exemplo var tabuada = new Array(); for (var linha=1; linha<=10;linha++){ tabuada[linha]=new Array(); for (var coluna = 1; coluna<=10;coluna++){ tabuada[linha][coluna]=linha*coluna; } } alert(tabuada[5][5]); // ?? alert(tabuada[0][5]); // ??