Forma otimizada de For

05/09/06

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.

Deixe um comentário




Este blog usa o Gravatar.


Não é aceito código HTML:
adicione-o no pastie.caboo.se 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.