Array do JavaScript
- Página Anterior Atributos Númericos JS
- Próxima Página Métodos de Array JS
Os arrays JavaScript são usados para armazenar vários valores em um único variável.
O que é um array?
Um array é uma variável especial que pode armazenar mais de um valor de uma vez.
Se você tiver uma lista de projetos (por exemplo, uma lista de marcas de carros), armazenar as marcas de carros em uma única variável deve ser assim:
var car1 = "Saab"; var car2 = "Volvo"; var car3 = "BMW";
Mas, e se você quiser percorrer todos os carros e encontrar um valor específico? E se não forem três marcas de carros, mas trêscentas?
A solução é o array!
Um array pode armazenar muitos valores com um único nome e ainda pode acessar esses valores através de referência ao índice.
Criar array
O uso do texto do array é a maneira mais simples de criar um array JavaScript.
Sintaxe:
var array-name = [item1, item2, ...];
Exemplo
var cars = ["Saab", "Volvo", "BMW"];
Os espaços em branco e as quebras de linha não importam. A declaração pode se estender por várias linhas:
Exemplo
var cars = [ "Saab", "Volvo", "BMW" ];
Não insira vírgula após o último elemento (por exemplo, "BMW",).
Pode haver problemas de compatibilidade entre navegadores.
usando a palavra-chave JavaScript new
O exemplo a seguir também criará um array e o atribuirá valores:
Exemplo
var cars = new Array("Saab", "Volvo", "BMW");
Os dois exemplos acima têm o mesmo efeito. Não é necessário usar new Array()
.
Pela simplicidade, legibilidade e velocidade de execução, use o primeiro método (método de texto do array).
elementos do array
Nós acessamosNúmero de índice (subíndice)para referenciar um elemento de array.
Esta instrução acessa o valor do primeiro elemento do cars:
var name = cars[0];
Esta instrução altera o primeiro elemento do cars:
cars[0] = "Opel";
Exemplo
var cars = ["Saab", "Volvo", "BMW"]; document.getElementById("demo").innerHTML = cars[0];
[0] é o primeiro elemento do array. [1] é o segundo. Os índices começam em 0.
Mudar elemento do array
Esta instrução altera o valor do primeiro elemento do cars:
cars[0] = "Opel";
Exemplo
var cars = ["Saab", "Volvo", "BMW"]; cars[0] = "Opel"; document.getElementById("demo").innerHTML = cars[0];
Acessar o array completo
Através do JavaScript, você pode acessar o array completo usando o nome do array:
Exemplo
var cars = ["Saab", "Volvo", "BMW"]; document.getElementById("demo").innerHTML = cars;
O array é um objeto
Os arrays são um tipo especial de objeto. No JavaScript, use typeof
O operador retornará "object".
No entanto, os arrays do JavaScript são melhor descritos como arrays.
Uso de arraynúmeropara acessar seus "elementos" neste exemplo.person[0]
Retorna Bill:
Array:
var person = ["Bill", "Gates", 62];
O uso de objetosNomepara acessar seus "membros" neste exemplo.person.firstName
Retorna Bill:
Objeto:
var person = {firstName:"Bill", lastName:"Gates", age:19};
Os elementos do array podem ser objetos
As variáveis do JavaScript podem ser objetos. Os arrays são um tipo especial de objeto.
Por isso, você pode armazenar variáveis de tipos diferentes no mesmo array.
Você pode armazenar objetos em um array. Você pode armazenar funções em um array. Você até pode armazenar arrays dentro de um array:
myArray[0] = Date.now; myArray[1] = myFunction; myArray[2] = myCars;
Propriedades e métodos de array
A verdadeira força dos arrays do JavaScript está oculta nas suas propriedades e métodos:
Exemplo
var x = cars.length; // A propriedade length retorna o número de elementos var y = cars.sort(); // O método sort() ordena o array
Vamos aprender os métodos de array no próximo capítulo.
Propriedade 'length'
length
A propriedade retorna o comprimento do array (número de elementos do array).
Exemplo
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.length; // O comprimento do 'fruits' é 4
length
A propriedade sempre é maior que o índice mais alto do array (subíndice).
Acessar o primeiro elemento do array
Exemplo
fruits = ["Banana", "Orange", "Apple", "Mango"]; var first = fruits[0];
Acessar o último elemento do array
Exemplo
fruits = ["Banana", "Orange", "Apple", "Mango"]; var last = fruits[fruits.length - 1];
Percorrer elementos de um array
O método mais seguro para percorrer um array é usar "for
"Loop":
Exemplo
var fruits, text, fLen, i; fruits = ["Banana", "Orange", "Apple", "Mango"]; fLen = fruits.length; text = "<ul>"; for (i = 0; i < fLen; i++) { text += "<li>" + fruits[i] + "</li>"; }
Você também pode usar Array.forEach()
Função:
Exemplo
var fruits, text; fruits = ["Banana", "Orange", "Apple", "Mango"]; text = "<ul>"; fruits.forEach(myFunction); text += "</ul>"; function myFunction(value) { text += "<li>" + value + "</li>"; }
adicionar elementos ao array
O melhor método para adicionar novos elementos ao array é usar push()
Métodos:
Exemplo
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Lemon"); // Adicionar um novo elemento (Lemon) ao fruits
também pode usar length
Para adicionar novos elementos ao array, você pode usar
Exemplo
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits[fruits.length] = "Lemon"; // Adicionar um novo elemento (Lemon) ao fruits
Aviso!
Adicionar o elemento com o índice mais alto pode criar "buracos" não definidos no array:
Exemplo
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits[6] = "Lemon"; // Adicionar um novo elemento (Lemon) ao fruits
Array associativo
Muitos elementos de programação suportam arrays com índices nomeados.
Arrays com índices nomeados são chamados de arrays associativos (ou hashes).
JavaScript Não há suportearrays com índices nomeados.
No JavaScript, os arrays podem usar apenasíndices numéricos.
Exemplo
var person = []; person[0] = "Bill"; person[1] = "Gates"; person[2] = 62; var x = person.length; // person.length retorna 3 var y = person[0]; // person[0] retorna "Bill"
Aviso!
Se você usar índices nomeados, o JavaScript redefinirá o array como um objeto padrão.
Após isso, todos os métodos e propriedades dos arrays gerarão resultados incorretos.
Exemplo:
var person = []; person["firstName"] = "Bill"; person["lastName"] = "Gates"; person["age"] = 62; var x = person.length; // person.length retornará 0 var y = person[0]; // person[0] retornará undefined
Diferenças entre array e objeto
no JavaScript,ArrayUseíndices numéricos.
no JavaScript,objetoUseÍndices nomeados.
O array é um tipo especial de objeto que possui índices numéricos.
Quando usar array e quando usar objeto?
- O JavaScript não suporta arrays associativos
- Se você quiser que o nome do elemento sejastring (texto)então você deve usarobjeto.
- Se você quiser que o nome do elemento sejanúmeroentão você deve usarArray.
Evite new Array()
Não há necessidade de usar o construtor de array embutido do JavaScript new Array()
.
Use []
Em vez disso!
As duas seguintes sentenças diferentes criam um novo array vazio chamado points:
var points = new Array(); // ruim var points = []; // otimo
As duas seguintes sentenças diferentes criam um novo array contendo seis números:
var points = new Array(40, 100, 1, 5, 25, 10); // ruim var points = [40, 100, 1, 5, 25, 10]; // otimo
new
Palavras-chave só complicam o código. Elas também podem gerar resultados inesperados:
var points = new Array(40, 100); // cria um array contendo dois elementos (40 e 100)
O que acontece se eu remover um dos elementos?
var points = new Array(40); // cria um array contendo 40 elementos não definidos!!!
Como identificar um array
Um problema comum é: como posso saber se uma variável é um array?
O problema está no operador JavaScript typeof
retorna "object
“:”
var fruits = ["Banana", "Orange", "Apple", "Mango"]; typeof fruits; // retorna object
O operador typeof retorna "object", pois o JavaScript array é um objeto.
Solução 1:
Para resolver esse problema, o ECMAScript 5 definiu um novo método Array.isArray()
:
Array.isArray(fruits); // Retorna true
O problema com essa solução é o ECMAScript 5 Não suporta navegadores antigos.
Solução 2:
Crie a sua própria isArray()
A função resolve esse problema:
function isArray(x) { return x.constructor.toString().indexOf("Array") > -1; }
Se o parâmetro for um array, a função acima sempre retornará true.
Ou uma explicação mais precisa é: se o原型 do objeto contém a palavra "Array", então retorna true.
Solução 3:
Se o objeto foi criado pelo construtor fornecido, então instanceof Operador retorna true:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits instanceof Array // Retorna true
- Página Anterior Atributos Númericos JS
- Próxima Página Métodos de Array JS