Uma coisa que sempre senti falta no Javascript era algo semelhante ao foreach do PHP. Alguns dias atrás, aprendi uma maneira que substitui bem:

var fruits = ['apple', 'orange', 'lemon'];
 
for (var i = 0, fruit; fruit = fruits[i]; i++) {
    alert(fruit);
}

Se você não entendeu nada, aí vai: para cada iteração, definimos a variável fruit como sendo fruits[i]. Quando nosso array não tiver mais elementos, será definido como undefined e o loop é encerrado. Dica do Targa.

Comentários #

#1 Renato Targa disse:
05 Set 06, 04:08PM

Há um outro benefício, ainda mais interessante: essa maneira de fazer o loop otimiza a performance, pois não requer comparações, você apenas atribui um valor (ou objeto) a uma variável com o valor vindo direto de um array.

fruit = fruits[i]
é mais rápido de processar que
i < fruits.length
pois você precisa verificar o length da array e depois comparar com o valor de i.

#2 DGmike disse:
14 Set 06, 10:12AM

Meu caso foi contrário, eu conheço o for, mas não o foreach no PHP.
Muito boa dica.

#3 Leonardo Priori disse:
18 Out 06, 01:28AM

tem tb o for in

for( i in fruits ){
alert(fruits[i])
}

ou algo mais completo
for( i in fruits )if( i != 'length' ){
fruit = fruits[i]
alert(fruit)
}

#4 Flávio Albuquerque Camilo disse:
02 Nov 06, 06:15AM

Em Java5.0, o foreach fica assim:

String[] strings = {"Flávio", "Albuquerque", "Camilo"};

for (String s : strings) {
System.out.println(s);
}

Muito mais simples!

Abraço.

#5 Thiago Caiubi disse:
18 Fev 11, 10:50AM

Se você não se importa com a ordem do seu array, pode usar a seguinte abordagem:

var fruits = ['apple', 'orange', 'lemon'];

for (var i = fruits.length; i--;) {
alert(fruits[i]);
}

:p

Abraço.

Deixe um comentário





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

jQuery: Dominando o framework

Você quer aprender a usar jQuery de verdade? Então chegou a hora! Neste workshop você verá como funciona este framework de JavaScript, entendendo todos os aspectos que fazem do jQuery uma das melhores ferramentas para desenvolvimento de interfaces.

Saiba mais Fechar

Conheça também o HOWTO