Você está na página 1de 17

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)

var arr = [1, 2, “a”, “b”];


var a = arr.concat(“m”, 32); //resulta em a = [1, 2, “a”, “b”, “m”, 32];

• every(função(elem, ind, obj) [,thisObjeto])


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]; var arr = [21, 3, 18, “a”, 290, “b”, 7];
function filtrarArray(elem, ind, obj){ function filtrarArray(elem, ind, obj){
return (elem >= 18); return (ind < 4);
} }
var x = arr.filter(filtrarArray); var x = arr.filter(filtrarArray);
alert(x); //retorna [21, 18, 290] alert(x); //retorna [21, 3, 18, “a”]

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”]
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])

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
• join([arg])
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])

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]

• pop( ): remove o último elemento de um array e retorna o valor que foi


removido;
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;

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”]

• 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, 4, 7, 15]; var arr = [1, 4, 7, 15];
funcaoUm = function(v1,v2,ind,arr){ funcaoDois = function(v1,v2,ind,arr){
return v1+v2; return v1+v2;
} }
var x = arr.reduce(funcaoUm); var x = arr.reduce(funcaoDois,100);
alert(x); 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;

var arr = [1, 2, “a”, “b”];


arr.reverse( ); //resulta arr = [“b”, “a”, 2, 1]
alert(arr);

• shift( ): remove o primeiro elemento de um array e retorna o valor que foi


removido;

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
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.

• 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){ para ordenar decrescente, basta fazer
no corpo da função: return b - a;
return a-b;
}); //resulta em arr = [-67, -32, 2, 34, 47, 111, 128]
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

Você também pode gostar