JavaScript - Objeto Array
Cristiano Pires Martins

Fonte: JavaScript: Guia do Programador - Maujor
Fundamentos
• Array é um objeto destinado a armazenar uma coleção ordenada de dados
indexados sequencialmente a partir de zero;

• Para criar um array:

• var meuArray = new Array( );

• Para popular um array:

• var meuArray = new Array(“casa”, “rio”, 5, “Jales”, 125);

• Cada elemento tem seu índice, começando por zero;
Fundamentos
• Arrays podem conter dados do tipo objeto:

• var outroArray = new Array(“casa”, “rio”, {x: 14, y: “mar”});

• Para ler:

• outroArray[2].x;		 ou	 	 outroArray[2][“x”];

• outroArray[2].y;		 ou	 	 outroArray[2][“y”];
Fundamentos
• Outra forma é criar e popular depois:

var a = new Array;

a[0] = 3.14159;

a[1] = “prego”;

a[2] = true;

a[3] = {nome: “Cristiano”, cidade: “Jales”};
Para ler:
a[0]		 	 //Retorna 3.14159
a[3].cidade	 //Retorna Jales
Propriedades do Construtor
• Construtor: é uma referência à função que cria o objeto;

• Prototype: permite adicionar novas propriedades e/ou métodos a um objeto
existente;

• Length: retorna a quantidade de elementos de um array;
var arr = new Array(1, 2, 3, “a”, “b”, “c”, {nome: “Cristiano”, cidade: “Jales”});

var x = arr.length;	 	 //O valor de x é sete
Métodos do objeto Array
• Concat(arg1, arg2, ..., argn)

• every(função(elem, ind, obj) [,thisObjeto])
var arr = [1, 2, “a”, “b”];
var a = arr.concat(“m”, 32);	 //resulta em a = [1, 2, “a”, “b”, “m”, 32];
var arr = [21, 3, 18, 290];
function funcaoUm(elem, ind, obj){
return (typeof elem == “number”);
}
var x = arr.every(funcaoUm);
alert(x);	//retorna true, todos os elementos são números
Até o Internet Explorer 8 não funciona esse método!
Mas existem funções que fazem funcionar.
Métodos do objeto Array
• filter (função(elem, ind, obj) [,thisObjeto])
var arr = [21, 3, 18, “a”, 290, “b”, 7];
function filtrarArray(elem, ind, obj){
return (elem >= 18);
}
var x = arr.filter(filtrarArray);
alert(x);	//retorna [21, 18, 290]
var arr = [21, 3, 18, “a”, 290, “b”, 7];
function filtrarArray(elem, ind, obj){
return (typeof elem == “string”);
}
var x = arr.filter(filtrarArray);
alert(x);	//retorna [“a”,”b”]
var arr = [21, 3, 18, “a”, 290, “b”, 7];
function filtrarArray(elem, ind, obj){
return (ind < 4);
}
var x = arr.filter(filtrarArray);
alert(x);	//retorna [21, 3, 18, “a”]
Métodos do objeto Array
• forEach(função(elem, ind, obj) [,thisObjeto])
var arr = [21, 3, 18, “a”, 290, “b”, 7];
var msg = “”;
function funcaoUm(elem, ind, obj){
msg += “arr[“ + ind + “] = “ + elem + “n”;
}
arr.forEach(funcaoUm);
alert(msg);
Métodos do objeto Array
• indexOf(elemento, [arg2, true ou false])
var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”];
var a = arr.indexOf(“b”);	 //retorna 3
var b = arr.indexOf(“a”);	 //retorna 2
var c = arr.indexOf(23);		 //retorna -1
var d = arr.indexOf(2);	 	 //retorna 1
var e = arr.indexOf(45);		 //retorna -1
var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”];
var a = arr.indexOf(1);	 //retorna 0 - índice do primeiro elemento 1 no array
var b = arr.indexOf(1,2);	//retorna 6 - índice do primeiro elemento 1 no array
//começando a busca no terceiro elemento
var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”];
var a = arr.indexOf(45);	 	 	 //retorna -1 - não existe o número 45 no array
Métodos do objeto Array
• lastIndexOf(elemento, [arg2, true ou false])

• join([arg])
var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”];
var a = arr.indexOf(“a”);		 	 //retorna 2
var b = arr.lastIndexOf(“a”);	 	 //retorna 7
var arr = [1, 2, “a”, “b”];
var a = arr.join( );	 	 	 //resulta na string a = “1,2,a,b”
var b = arr.join(“ - ”);	 	 //resulta na string a = “1 - 2 - a - b”
var c = arr.join(“*”);	 	 	 //resulta na string a = “1*2*a*b”
Métodos do objeto Array
• map(função(elem, ind, obj) [,thisObjeto])

• pop( ): remove o último elemento de um array e retorna o valor que foi
removido;
var arr = [21, 3, 18, 290];
function funcaoUm(elem, ind, obj){
return (elem = elem*10);
}
var x = arr.map(funcaoUm);
alert(x);		 //retorna [210, 30, 180, 2900]
var arr = [1, 2, “a”, “b”];
var a = arr.pop( ); 		 //resulta em a = “b” e arr.length = 3
Métodos do objeto Array
• push(arg1, arg2, ..., argn): acrescenta os argumentos no final de um array e
retorna a nova quantidade de elementos no array;

• reduce(função(v1, v2, ind, arr)[,vInicial]): reduz a um único resultado usando a
operação da função. No caso do exemplo 2, acrescenta 100 ao resultado
var arr = [1, 2, “a”, “b”];
var a = arr.push(5, 6, 7, “m”); 		 //resulta em a = 8
	 	 	 	 	 	 	 	 	 //arr = [1, 2, “a”, “b”, 5, 6, 7, “m”]
var arr = [1, 4, 7, 15];
funcaoUm = function(v1,v2,ind,arr){
return v1+v2;
}
var x = arr.reduce(funcaoUm); 	 	
alert(x);
var arr = [1, 4, 7, 15];
funcaoDois = function(v1,v2,ind,arr){
return v1+v2;
}
var x = arr.reduce(funcaoDois,100);
alert(x);
Métodos do objeto Array
• reduceRight(função(v1, v2, ind, arr)[,vInicial]): funciona de modo semelhante
ao reduce, com a diferença que a função percorre o array do último elemento
para o primeiro;

• reverse( ): inverte a ordem dos elementos de um array;

• shift( ): remove o primeiro elemento de um array e retorna o valor que foi
removido;
var arr = [1, 2, “a”, “b”];
arr.reverse( ); 	 	 //resulta arr = [“b”, “a”, 2, 1]
alert(arr);
var arr = [1, 2, “a”, “b”];
var a = arr.shift( ); 	 //resulta em a = 1 e arr.length = 3
Métodos do objeto Array
• slice(arg1 [,arg2]): retorna um subarray do array. Admite um ou dois
argumentos que definem o índice inicial e o final do subarray a extrair:

• Diretrizes: 

• Extrai o subarray desde o elemento definido no arg1, mas não inclui
o arg2;

• Se não definir o arg2, extrai desde o arg1 e vai até o final;

• Argumentos negativos revertem o início de contagem do índice para
o último elemento.
var arr = [1, 2, 3, 4, “a”, “b”, “c”];
var a = arr.slice(2, 5); 	 //resulta em a = [3, 4, “a”]
var a = arr.slice(3); 	 //resulta em a = [4, “a”, “b”, “c”]
var a = arr.slice(-5, 6); 	 //resulta em a = [3, 4, “a”, ”b”]
var a = arr.slice(-6, -4); 	 //resulta em a = [2, 3]
Métodos do objeto Array
• some (função(elem, ind, obj) [,thisObjeto])
var arr = [21, 3, 18, “a”, 290];
function funcaoUm(elem, ind, obj){
return (typeof elem == “string”);
}
var x = arr.some(funcaoUm);
alert(x);	//retorna true, pois existe pelo menos 1 elemento string no array
var arr = [21, 3, 18, 290];
function funcaoDois(elem, ind, obj){
return (typeof elem == “string”);
}
var x = arr.some(funcaoDois);
alert(x);	//retorna false, pois não existe 1 elemento string no array
Métodos do objeto Array
• sort([funcao]): destina a ordenar os elementos de um array. Havendo
número, serão transformados em strings para determinar a ordem,
resultado em ordenação não numérica;
var arr = [“maçã”, “laranja”, “limão”, “abacate”, “banana”];
arr.sort( );
var arrUm = [2, 128, 34, 111];
arrUm.sort( );
alert(arr);	
alert(arrUm);
var arr = [2, 128, -32, 47, 34, 111, -67];
arr.sort(function(a,b){
return a-b;
});	 //resulta em arr = [-67, -32, 2, 34, 47, 111, 128]
para ordenar decrescente, basta fazer
no corpo da função: return b - a;
Os métodos listados a seguir foram implementados na versão JavaScript 1.8 da linguagem e estão previstos na
especificação ECMA-262. Esses métodos ainda não estão implementados em todos os navegadores modernos.
Matriz em Javascript
function createMatrix(x,y){

mt = new Array();

  for(i=0; i<x; i++){

    mt[i] = new Array();

    for(j=0; j<y; j++){

mt[i][j] = -1;

}

}

return mt;

}

my_matrix = createMatrix(10,10);
my_matrix[2][3] = 'Olá';

alert(my_matrix[2][3]);
Fonte: Portifólio de Rafael Sant’Ana
rafaelsantana.blog.com

Java script aula 04 - objeto array

  • 1.
    JavaScript - ObjetoArray Cristiano Pires Martins Fonte: JavaScript: Guia do Programador - Maujor
  • 2.
    Fundamentos • Array éum objeto destinado a armazenar uma coleção ordenada de dados indexados sequencialmente a partir de zero; • Para criar um array: • var meuArray = new Array( ); • Para popular um array: • var meuArray = new Array(“casa”, “rio”, 5, “Jales”, 125); • Cada elemento tem seu índice, começando por zero;
  • 3.
    Fundamentos • Arrays podemconter dados do tipo objeto: • var outroArray = new Array(“casa”, “rio”, {x: 14, y: “mar”}); • Para ler: • outroArray[2].x; ou outroArray[2][“x”]; • outroArray[2].y; ou outroArray[2][“y”];
  • 4.
    Fundamentos • Outra formaé criar e popular depois: var a = new Array; a[0] = 3.14159; a[1] = “prego”; a[2] = true; a[3] = {nome: “Cristiano”, cidade: “Jales”}; Para ler: a[0] //Retorna 3.14159 a[3].cidade //Retorna Jales
  • 5.
    Propriedades do Construtor •Construtor: é uma referência à função que cria o objeto; • Prototype: permite adicionar novas propriedades e/ou métodos a um objeto existente; • Length: retorna a quantidade de elementos de um array; var arr = new Array(1, 2, 3, “a”, “b”, “c”, {nome: “Cristiano”, cidade: “Jales”}); var x = arr.length; //O valor de x é sete
  • 6.
    Métodos do objetoArray • Concat(arg1, arg2, ..., argn) • every(função(elem, ind, obj) [,thisObjeto]) var arr = [1, 2, “a”, “b”]; var a = arr.concat(“m”, 32); //resulta em a = [1, 2, “a”, “b”, “m”, 32]; var arr = [21, 3, 18, 290]; function funcaoUm(elem, ind, obj){ return (typeof elem == “number”); } var x = arr.every(funcaoUm); alert(x); //retorna true, todos os elementos são números Até o Internet Explorer 8 não funciona esse método! Mas existem funções que fazem funcionar.
  • 7.
    Métodos do objetoArray • filter (função(elem, ind, obj) [,thisObjeto]) var arr = [21, 3, 18, “a”, 290, “b”, 7]; function filtrarArray(elem, ind, obj){ return (elem >= 18); } var x = arr.filter(filtrarArray); alert(x); //retorna [21, 18, 290] var arr = [21, 3, 18, “a”, 290, “b”, 7]; function filtrarArray(elem, ind, obj){ return (typeof elem == “string”); } var x = arr.filter(filtrarArray); alert(x); //retorna [“a”,”b”] var arr = [21, 3, 18, “a”, 290, “b”, 7]; function filtrarArray(elem, ind, obj){ return (ind < 4); } var x = arr.filter(filtrarArray); alert(x); //retorna [21, 3, 18, “a”]
  • 8.
    Métodos do objetoArray • forEach(função(elem, ind, obj) [,thisObjeto]) var arr = [21, 3, 18, “a”, 290, “b”, 7]; var msg = “”; function funcaoUm(elem, ind, obj){ msg += “arr[“ + ind + “] = “ + elem + “n”; } arr.forEach(funcaoUm); alert(msg);
  • 9.
    Métodos do objetoArray • indexOf(elemento, [arg2, true ou false]) var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”]; var a = arr.indexOf(“b”); //retorna 3 var b = arr.indexOf(“a”); //retorna 2 var c = arr.indexOf(23); //retorna -1 var d = arr.indexOf(2); //retorna 1 var e = arr.indexOf(45); //retorna -1 var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”]; var a = arr.indexOf(1); //retorna 0 - índice do primeiro elemento 1 no array var b = arr.indexOf(1,2); //retorna 6 - índice do primeiro elemento 1 no array //começando a busca no terceiro elemento var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”]; var a = arr.indexOf(45); //retorna -1 - não existe o número 45 no array
  • 10.
    Métodos do objetoArray • lastIndexOf(elemento, [arg2, true ou false]) • join([arg]) var arr = [1, 2, “a”, “b”, “2”, “c”, 1, “a”, “45”]; var a = arr.indexOf(“a”); //retorna 2 var b = arr.lastIndexOf(“a”); //retorna 7 var arr = [1, 2, “a”, “b”]; var a = arr.join( ); //resulta na string a = “1,2,a,b” var b = arr.join(“ - ”); //resulta na string a = “1 - 2 - a - b” var c = arr.join(“*”); //resulta na string a = “1*2*a*b”
  • 11.
    Métodos do objetoArray • map(função(elem, ind, obj) [,thisObjeto]) • pop( ): remove o último elemento de um array e retorna o valor que foi removido; var arr = [21, 3, 18, 290]; function funcaoUm(elem, ind, obj){ return (elem = elem*10); } var x = arr.map(funcaoUm); alert(x); //retorna [210, 30, 180, 2900] var arr = [1, 2, “a”, “b”]; var a = arr.pop( ); //resulta em a = “b” e arr.length = 3
  • 12.
    Métodos do objetoArray • push(arg1, arg2, ..., argn): acrescenta os argumentos no final de um array e retorna a nova quantidade de elementos no array; • reduce(função(v1, v2, ind, arr)[,vInicial]): reduz a um único resultado usando a operação da função. No caso do exemplo 2, acrescenta 100 ao resultado var arr = [1, 2, “a”, “b”]; var a = arr.push(5, 6, 7, “m”); //resulta em a = 8 //arr = [1, 2, “a”, “b”, 5, 6, 7, “m”] var arr = [1, 4, 7, 15]; funcaoUm = function(v1,v2,ind,arr){ return v1+v2; } var x = arr.reduce(funcaoUm); alert(x); var arr = [1, 4, 7, 15]; funcaoDois = function(v1,v2,ind,arr){ return v1+v2; } var x = arr.reduce(funcaoDois,100); alert(x);
  • 13.
    Métodos do objetoArray • reduceRight(função(v1, v2, ind, arr)[,vInicial]): funciona de modo semelhante ao reduce, com a diferença que a função percorre o array do último elemento para o primeiro; • reverse( ): inverte a ordem dos elementos de um array; • shift( ): remove o primeiro elemento de um array e retorna o valor que foi removido; var arr = [1, 2, “a”, “b”]; arr.reverse( ); //resulta arr = [“b”, “a”, 2, 1] alert(arr); var arr = [1, 2, “a”, “b”]; var a = arr.shift( ); //resulta em a = 1 e arr.length = 3
  • 14.
    Métodos do objetoArray • slice(arg1 [,arg2]): retorna um subarray do array. Admite um ou dois argumentos que definem o índice inicial e o final do subarray a extrair: • Diretrizes: • Extrai o subarray desde o elemento definido no arg1, mas não inclui o arg2; • Se não definir o arg2, extrai desde o arg1 e vai até o final; • Argumentos negativos revertem o início de contagem do índice para o último elemento. var arr = [1, 2, 3, 4, “a”, “b”, “c”]; var a = arr.slice(2, 5); //resulta em a = [3, 4, “a”] var a = arr.slice(3); //resulta em a = [4, “a”, “b”, “c”] var a = arr.slice(-5, 6); //resulta em a = [3, 4, “a”, ”b”] var a = arr.slice(-6, -4); //resulta em a = [2, 3]
  • 15.
    Métodos do objetoArray • some (função(elem, ind, obj) [,thisObjeto]) var arr = [21, 3, 18, “a”, 290]; function funcaoUm(elem, ind, obj){ return (typeof elem == “string”); } var x = arr.some(funcaoUm); alert(x); //retorna true, pois existe pelo menos 1 elemento string no array var arr = [21, 3, 18, 290]; function funcaoDois(elem, ind, obj){ return (typeof elem == “string”); } var x = arr.some(funcaoDois); alert(x); //retorna false, pois não existe 1 elemento string no array
  • 16.
    Métodos do objetoArray • sort([funcao]): destina a ordenar os elementos de um array. Havendo número, serão transformados em strings para determinar a ordem, resultado em ordenação não numérica; var arr = [“maçã”, “laranja”, “limão”, “abacate”, “banana”]; arr.sort( ); var arrUm = [2, 128, 34, 111]; arrUm.sort( ); alert(arr); alert(arrUm); var arr = [2, 128, -32, 47, 34, 111, -67]; arr.sort(function(a,b){ return a-b; }); //resulta em arr = [-67, -32, 2, 34, 47, 111, 128] para ordenar decrescente, basta fazer no corpo da função: return b - a; Os métodos listados a seguir foram implementados na versão JavaScript 1.8 da linguagem e estão previstos na especificação ECMA-262. Esses métodos ainda não estão implementados em todos os navegadores modernos.
  • 17.
    Matriz em Javascript functioncreateMatrix(x,y){
 mt = new Array();
   for(i=0; i<x; i++){
     mt[i] = new Array();
     for(j=0; j<y; j++){
 mt[i][j] = -1;
 }
 }
 return mt;
 }
 my_matrix = createMatrix(10,10); my_matrix[2][3] = 'Olá';
 alert(my_matrix[2][3]); Fonte: Portifólio de Rafael Sant’Ana rafaelsantana.blog.com