Javascript: Arrays com valores vazios (undefined)

Palavras-chave: array, foreach, undefined

Arrays em javascript tem um comportamento curioso. Você pode instanciá-los com um tamanho pré-definido ou incrementá-los / decrementá-los à medida que achar necessário.

Mas, existe uma situação peculiar. Imagine a seguinte situação:

var a = new Array();
a [3] = 'd';

Ao definir a posição 3 como a letra “d” o javascript criou juntamente todas as três posições que a antecedem (0, 1 e 2). Veja o que acontece quando itera sobre esse array utilizando um for comum:

for( i = 0; i < a.length; i++ ) {
    alert( a[i] );
}

O resultado será três registros “undefined” antes da posição 3. Então, como fazer para recuperar apenas os valores que tiverem tiverem sido definidos? A solução é o que, em outras linguagens, chamamos de foreach. Sua utilização faz uso do operador for de uma maneira diferente:

for( i in a ) {
    alert( a[i] );
}

O foreach em Javascript irá navegar em todos os valores do Array a que não forem undefined e atribuirá em i o índice desses valores no array.

This entry was posted in JavaScript. Bookmark the permalink.