Em Java, você pode usar um for
loop para percorrer objetos em uma matriz da seguinte maneira:
String[] myStringArray = {"Hello", "World"};
for (String s : myStringArray)
{
// Do something
}
Você pode fazer o mesmo em JavaScript?
javascript
arrays
loops
for-loop
Mark Szymanski
fonte
fonte
for-in
in
eof
que pode ser usado e fazer coisas diferentes. Então você também temforEach
o loop baseado em índices feios e irritantes. Qualquer outra linguagem moderna torna fácil e direto o loop de uma coleção, sem surpresas ou confusão. JS poderia também, mas não.Respostas:
Você tem várias opções:
1.
for
Loop sequencial :Prós
break
econtinue
instruções de controle de fluxoContras
2. Array.prototype.forEach
A especificação ES5 introduziu muitos métodos de matriz benéficos, um deles,
Array.prototype.forEach
e fornece uma maneira concisa de iterar sobre uma matriz:Sendo quase dez anos quando a especificação ES5 foi lançada (dezembro de 2009), ela foi implementada por quase todos os mecanismos modernos nos ambientes desktop, servidor e móvel, por isso é seguro usá-los.
E com a sintaxe da função de seta ES6, é ainda mais sucinto:
As funções de seta também são amplamente implementadas, a menos que você planeje suportar plataformas antigas (por exemplo, IE11); você também está seguro para ir.
Prós
Contras
break
/continue
Normalmente, você pode substituir a necessidade
break
de loops imperativos filtrando os elementos da matriz antes de iterá-los, por exemplo:Lembre-se de que, se você estiver iterando uma matriz para criar outra matriz a partir dela , deve usar
map
, já vi esse anti-padrão tantas vezes.Anti-padrão:
Caso de uso adequado do mapa :
Além disso, se você estiver tentando reduzir a matriz para um valor, por exemplo, deseja somar uma matriz de números, use o método de redução .
Anti-padrão:
O uso adequado de reduzir :
3.
for-of
declaração ES6O padrão ES6 introduz o conceito de objetos iteráveis e define uma nova construção para atravessar dados, a
for...of
instruçãoEsta declaração funciona para qualquer tipo de objeto iterável e também para geradores (qualquer objeto que tenha uma
[Symbol.iterator]
propriedade).Os objetos de matriz são iteráveis internos por definição no ES6, para que você possa usar esta instrução neles:
Prós
break
/continue
).Contras
Não use
for...in
O @zipcodeman sugere o uso da
for...in
instrução, mas para iterar matrizesfor-in
deve ser evitado, essa instrução deve enumerar as propriedades do objeto.Não deve ser usado para objetos do tipo matriz, porque:
O segundo ponto é que ele pode causar muitos problemas, por exemplo, se você estender o
Array.prototype
objeto para incluir um método lá, essa propriedade também será enumerada.Por exemplo:
O código acima consola o log "a", "b", "c" e "foo!".
Isso será particularmente um problema se você usar alguma biblioteca que depende muito do aumento de protótipos nativos (como o MooTools, por exemplo).
A
for-in
declaração, como eu disse antes, existe para enumerar as propriedades do objeto, por exemplo:No exemplo acima, o
hasOwnProperty
método permite que você enumere apenas propriedades próprias , é isso, apenas as propriedades que o objeto possui fisicamente, nenhuma propriedade herdada.Eu recomendo que você leia o seguinte artigo:
fonte
false
,undefined
,0
,""
,NaN
.Sim, supondo que sua implementação inclua o recurso
for
...of
introduzido no ECMAScript 2015 (a versão "Harmony")) ... que é uma suposição bastante segura atualmente.Funciona assim:
Ou melhor ainda, já que o ECMAScript 2015 também fornece variáveis com escopo de bloco:
(A variável
s
é diferente em cada iteração, mas ainda pode ser declaradaconst
dentro do corpo do loop, desde que não seja modificada lá.)Uma observação sobre matrizes esparsas: uma matriz em JavaScript pode na verdade não armazenar tantos itens quanto os relatados por ela
length
; esse número relatado é simplesmente um maior que o índice mais alto no qual um valor é armazenado. Se o array contiver menos elementos do que o indicado pelo seu comprimento, é considerado esparso . Por exemplo, é perfeitamente legítimo ter uma matriz com itens apenas nos índices 3, 12 e 247; olength
de uma matriz desse tipo é relatado como 248, embora esteja armazenando apenas 3 valores. Se você tentar acessar um item em qualquer outro índice, a matriz parecerá ter oundefined
valor lá. Portanto, quando você deseja "fazer um loop" de uma matriz, você tem uma pergunta a ser respondida: deseja fazer um loop em todo o intervalo indicado pelo comprimento e processoundefined
s para quaisquer elementos ausentes ou você deseja processar apenas os elementos realmente presentes? Existem muitos aplicativos para ambas as abordagens; depende apenas para o que você está usando a matriz.Se você iterar sobre uma matriz com
for
..of
, o corpo do loop será executadolength
vezes e a variável de controle do loop será definida comoundefined
para quaisquer itens que não estejam realmente presentes na matriz. Dependendo dos detalhes do seu código "faça algo com", esse comportamento pode ser o que você deseja, mas se não, você deve usar uma abordagem diferente.Claro, alguns desenvolvedores não têm escolha a não ser usar uma abordagem diferente de qualquer maneira, porque por alguma razão eles estão alvejando uma versão do JavaScript que ainda não suporta
for
...of
.Desde que sua implementação JavaScript seja compatível com a edição anterior da especificação ECMAScript (que exclui, por exemplo, versões do Internet Explorer anteriores à 9), você pode usar o
Array#forEach
método iterador em vez de um loop. Nesse caso, você passa uma função a ser chamada em cada item da matriz:Ao contrário de
for
...of
,.forEach
apenas chama a função para elementos que estão realmente presentes na matriz. Se for aprovada nossa matriz hipotética com três elementos e um comprimento de 248, ela chamará a função apenas três vezes, e não 248 vezes. Também distingue entre elementos ausentes e elementos que estão realmente configurados paraundefined
; para o último, ainda chamará a função, passandoundefined
como argumento. Se isto é como você deseja lidar com matrizes esparsas,.forEach
pode ser o caminho a percorrer, mesmo se seus apoios intérpretefor
...of
.A opção final, que funciona em todas as versões do JavaScript, é um loop de contagem explícito . Você simplesmente conta de 0 a um a menos que o comprimento e usa o contador como um índice. O loop básico é assim:
Uma vantagem dessa abordagem é que você pode escolher como lidar com matrizes esparsas; O código acima irá executar o corpo do loop do total de
length
vezes, coms
conjunto paraundefined
por quaisquer elementos em falta, assim comofor
..of
. Se você preferir manipular apenas os elementos realmente presentes de uma matriz esparsa, como.forEach
, você pode adicionar umin
teste simples no índice:A atribuição do valor do comprimento à variável local (em vez de incluir a
myStringArray.length
expressão completa na condição do loop) pode fazer uma diferença significativa no desempenho, uma vez que ignora uma pesquisa de propriedade todas as vezes; usando o Rhino na minha máquina, a aceleração é de 43%.Você pode ver o tamanho do cache realizado na cláusula de inicialização do loop, assim:
O loop de contagem explícita também significa que você tem acesso ao índice de cada valor, se desejar. O índice também é passado como um parâmetro extra para a função que você passa
forEach
, para que você também possa acessá-lo dessa maneira:for
...of
não fornece o índice associado a cada objeto, mas contanto que o objeto sobre o qual você está iterando seja realmente umArray
(for
..of
funciona para outros tipos iteráveis que podem não ter esse método), você pode usar o Array #entries para alterá-lo para uma matriz de pares [index, item] e iterar sobre isso:A sintaxe
for
...in
mencionada por outros é para fazer um loop sobre as propriedades de um objeto; como uma matriz em JavaScript é apenas um objeto com nomes de propriedades numéricos (e umalength
propriedade atualizada automaticamente ), você pode, teoricamente, fazer um loop sobre uma matriz com ele. Mas o problema é que ele não se restringe aos valores das propriedades numéricas (lembre-se de que mesmo métodos são na verdade apenas propriedades cujo valor é um fechamento), nem é garantido que itere sobre aqueles em ordem numérica. Portanto, a sintaxefor
... nãoin
deve ser usada para fazer um loop pelas matrizes.fonte
i in myStringArray
no seu exemplo? Como isso pode ser falso?a=[1,2,3,4]; delete a[2]; for (j in a) { console.log(j); }
as saídas 0, 1, 3 e 4.a.length
ainda são 5. #for j in a
. Estou demonstrando que ain
verificação não é redundante, como você alegou, mostrando todos os índices e mostrando que existe um entre 0 elength-1
que não existe. Eu também poderia ter acabado de imprimir2 in a
, o que é realmentefalse
, apesar do fato de você ter dito que isso era impossível.Você pode usar
map
, que é uma técnica de programação funcional que também está disponível em outras linguagens como Python e Haskell .A sintaxe geral é:
Em geral,
func
seria necessário um parâmetro, que é um item da matriz. Mas, no caso do JavaScript, ele pode usar um segundo parâmetro, que é o índice do item, e um terceiro parâmetro, que é o próprio array.O valor de retorno de
array.map
é outra matriz, para que você possa usá-lo assim:E agora x é
[10,20,30,40]
.Você não precisa escrever a função em linha. Pode ser uma função separada.
o que seria equivalente a:
Exceto que você não entende
new_list
.fonte
Array.forEach
.map
é para gerar uma nova matriz.Array.prototype.map
método faz parte do ECMAScript 5th Edition Standard, ainda não está disponível em todas as implementações (por exemplo, o IE não possui), também para iterar sobre uma matriz. Acho que oArray.prototype.forEach
método é mais semanticamente correto ... também, por favor ' t sugerem a for-na declaração, ver a minha resposta para mais detalhes :)forEach
emap
é que o primeiro não retorna os resultados da iteração.map
(às vezes akacollect
, mas muito diferente deapply
) é expressamente para transformar cada elemento de uma matriz em um resultado correspondente; é um mapeamento 1 para 1 , daí o nome. Faz parte de toda uma família de operações que incluireduce
(que produz um único resultado de toda a matriz) efilter
(que produz um subconjunto da matriz original) e assim por diante. Considerando queforEach
apenas faz algo com cada elemento, semântica não especificada.Em JavaScript, não é aconselhável fazer um loop através de uma matriz com um loop for-in, mas é melhor usar um
for
loop como:Também é otimizado ("armazenando em cache" o comprimento da matriz). Se você quiser saber mais, leia meu post sobre o assunto .
fonte
++i
em vez dei++
++i
é uma otimização da velha escola que compiladores modernos fazer por você em um loop desde há muito tempo atrás :) stackoverflow.com/a/1547433/1033348i_stop
ou emi_end
vez delen
. É tão legível (se não mais!), E você naturalmente evitará esse tipo de problema (já que seu outro loop terá, por exemplo,j_stop
).for (vamos s de myStringArray) {
(Respondendo diretamente à sua pergunta: agora você pode!)
A maioria das outras respostas está correta, mas elas não mencionam (até o momento em que escrevemos) que o ECMA Script
62015 está trazendo um novo mecanismo para fazer a iteração, ofor..of
loop.Essa nova sintaxe é a maneira mais elegante de iterar uma matriz em javascript (desde que você não precise do índice de iteração).
Atualmente, ele funciona com Firefox 13+, Chrome 37+ e não funciona de maneira nativa com outros navegadores (consulte a compatibilidade do navegador abaixo). Felizmente, temos compiladores JS (como o Babel ) que nos permitem usar os recursos da próxima geração hoje.
Também funciona no Node (eu testei na versão 0.12.0).
Iterando uma matriz
Iterando uma matriz de objetos
Iterando um Gerador:
(exemplo extraído de https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of )
Tabela de compatibilidade: http://kangax.github.io/es5-compat-table/es6/#For..of loops
Spec: http://wiki.ecmascript.org/doku.php?id=harmony:iterators
}
fonte
const s
vez devar s
var s of arr
é quase o dobro (1,9x) o tempo de execução em relação ao uso de um simples contador for-loop e recuperação de elementos de índice em nodejsOpera, Safari, Firefox e Chrome agora compartilham um conjunto de métodos Array aprimorados para otimizar muitos loops comuns.
Talvez você não precise de todos eles, mas eles podem ser muito úteis ou seriam se todos os navegadores os suportassem.
O Mozilla Labs publicou os algoritmos que eles e o WebKit usam, para que você possa adicioná-los você mesmo.
O filtro retorna uma matriz de itens que satisfazem alguma condição ou teste.
every retorna true se cada membro da matriz passa no teste.
alguns retornos verdadeiros se algum passar no teste.
O forEach executa uma função em cada membro da matriz e não retorna nada.
map é como forEach, mas retorna uma matriz dos resultados da operação para cada elemento.
Todos esses métodos assumem uma função para o primeiro argumento e têm um segundo argumento opcional, que é um objeto cujo escopo você deseja impor aos membros da matriz à medida que passam pela função.
Ignore-o até precisar.
indexOf e lastIndexOf localizam a posição apropriada do primeiro ou do último elemento que corresponde exatamente ao seu argumento.
fonte
Introdução
Desde que eu estive na faculdade, eu programei em Java, JavaScript, Pascal, ABAP , PHP, Progress 4GL, C / C ++ e, possivelmente, algumas outras linguagens em que não consigo pensar agora.
Embora todos tenham suas próprias idiossincrasias linguísticas, cada um desses idiomas compartilha muitos dos mesmos conceitos básicos. Tais conceitos incluem procedimentos / funções,
IF
declarações,FOR
loops eWHILE
loops.Um
for
laço tradicionalUm
for
loop tradicional possui três componentes:Esses três componentes são separados um do outro por um
;
símbolo. O conteúdo de cada um desses três componentes é opcional, o que significa que o seguinte é ofor
loop mais mínimo possível:Obviamente, você precisará incluir um
if(condition === true) { break; }
ou um localif(condition === true) { return; }
dentro dessefor
loop para que ele pare de funcionar.Normalmente, porém, a inicialização é usada para declarar um índice, a condição é usada para comparar esse índice com um valor mínimo ou máximo, e a reflexão posterior é usada para incrementar o índice:
Usando um
for
loop tradicional para percorrer uma matrizA maneira tradicional de percorrer uma matriz é esta:
Ou, se você preferir fazer um loop para trás, faça o seguinte:
Existem, no entanto, muitas variações possíveis, como por exemplo esta:
... ou este ...
... ou este:
O que funcionar melhor é em grande parte uma questão de gosto pessoal e do caso de uso específico que você está implementando.
Observe que cada uma dessas variações é suportada por todos os navegadores, incluindo os muito muito antigos!
Um
while
laçoUma alternativa para um
for
loop é umwhile
loop. Para percorrer uma matriz, você pode fazer o seguinte:Como
for
loops tradicionais , oswhile
loops são suportados até pelos navegadores mais antigos.Além disso, observe que o loop while pode ser reescrito como um
for
loop. Por exemplo, owhile
loop acima se comporta exatamente da mesma maneira que estefor
loop:For...in
efor...of
Em JavaScript, você também pode fazer isso:
Isso deve ser usado com cuidado, no entanto, uma vez que não se comporta da mesma forma que um
for
loop tradicional em todos os casos, e existem possíveis efeitos colaterais que precisam ser considerados. Consulte Por que usar "for ... in" com iteração de matriz é uma má idéia? para mais detalhes.Como alternativa
for...in
, agora também existefor...of
. O exemplo a seguir mostra a diferença entre umfor...of
loop e umfor...in
loop:Além disso, é necessário considerar que nenhuma versão do Internet Explorer suporta
for...of
( Edge 12+ ) e quefor...in
requer pelo menos o Internet Explorer 10.Array.prototype.forEach()
Uma alternativa para
for
-loops éArray.prototype.forEach()
, que usa a seguinte sintaxe:Array.prototype.forEach()
é suportado por todos os navegadores modernos, bem como pelo Internet Explorer 9 e posterior.Bibliotecas
Finalmente, muitas bibliotecas de utilidades também têm suas próprias
foreach
variações. AFAIK, os três mais populares são os seguintes:jQuery.each()
, em jQuery :_.each()
, em Underscore.js :_.forEach()
, no Lodash.js :fonte
Use o loop while ...
logs: 'um', 'dois', 'três'
E para a ordem inversa, um loop ainda mais eficiente
logs: 'três', 'dois', 'um'
Ou o
for
laço clássicologs: 'um', 'dois', 'três'
Referência: http://www.sitepoint.com/google-closure-how-not-to-write-javascript/
fonte
Se você deseja uma maneira concisa de escrever um loop rápido e pode iterar ao contrário:
Isso tem o benefício de armazenar em cache o comprimento (semelhante
for (var i=0, len=myArray.length; i<len; ++i)
e diferentefor (var i=0; i<myArray.length; ++i)
) e ter menos caracteres para digitar.Existem até momentos em que você deve iterar ao contrário, como ao iterar em uma NodeList ativa, na qual planeja remover itens do DOM durante a iteração.
fonte
for (var i=0,len=array.length;i<len;++i)
era um loop comum e sensível para escrever.Alguns casos de uso de loop através de uma matriz da maneira de programação funcional em JavaScript:
1. Basta percorrer uma matriz
Nota: Array.prototype.forEach () não é uma maneira funcional, estritamente falando, pois a função que assume como parâmetro de entrada não deve retornar um valor, que, portanto, não pode ser considerado como uma função pura.
2. Verifique se algum dos elementos de uma matriz passa em um teste
3. Transforme em uma nova matriz
Nota: O método map () cria uma nova matriz com os resultados da chamada de uma função fornecida em todos os elementos da matriz de chamada.
4. Resuma uma propriedade específica e calcule sua média
5. Crie uma nova matriz com base no original, mas sem modificá-lo
6. Conte o número de cada categoria
7. Recupere um subconjunto de uma matriz com base em critérios específicos
Nota: O método filter () cria uma nova matriz com todos os elementos que passam no teste implementado pela função fornecida.
8. Classifique uma matriz
9. Encontre um elemento em uma matriz
O método Array.prototype.find () retorna o valor do primeiro elemento na matriz que satisfaz a função de teste fornecida.
Referências
fonte
Existe uma maneira de fazer isso em que você tem muito pouco escopo implícito em seu loop e elimina variáveis extras.
Ou se você realmente deseja obter o ID e ter um
for
loop realmente clássico :Navegadores modernos todos os métodos de suporte de iterador
forEach
,map
,reduce
,filter
e uma série de outros métodos no protótipo matriz .fonte
Existem várias maneiras de percorrer a matriz em JavaScript.
Loop genérico:
ES5's forEach:
jQuery.each:
Dê uma olhada nisto para obter informações detalhadas ou você também pode verificar o MDN para executar um loop em uma matriz em JavaScript e usar o jQuery e verificar o jQuery para cada um .
fonte
Eu recomendaria completamente o uso da biblioteca underscore.js . Ele fornece várias funções que você pode usar para iterar sobre matrizes / coleções.
Por exemplo:
fonte
underscore
se o ECMA-262 foi adicionado aoforEach
methor. O código nativo é sempre melhor.Loop de matriz:
Loop de objeto:
fonte
Sim , você pode fazer o mesmo em JavaScript usando um loop, mas não se limitando a isso, existem várias maneiras de fazer um loop sobre matrizes em JavaScript. Imagine que você tem esse array abaixo e gostaria de fazer um loop sobre ele:
Estas são as soluções:
1) For loop
Um
for
loop é uma maneira comum de percorrer matrizes em JavaScript, mas não são consideradas as soluções mais rápidas para matrizes grandes:2) Enquanto loop
Um loop while é considerado a maneira mais rápida de percorrer longas matrizes, mas geralmente é menos usado no código JavaScript:
3) Faça enquanto
A
do while
estiver fazendo a mesma coisa quewhile
com alguma diferença de sintaxe como abaixo:Essas são as principais maneiras de fazer loops de JavaScript, mas existem mais algumas maneiras de fazer isso.
Também usamos um
for in
loop para repetir objetos em JavaScript.Também olhar para os
map()
,filter()
,reduce()
funções, etc. em uma matriz em JavaScript. Eles podem fazer as coisas muito mais rápido e melhor do que usarwhile
efor
.Este é um bom artigo, se você quiser saber mais sobre as funções assíncronas sobre matrizes em JavaScript.
Leia mais >> aqui :
fonte
Se alguém estiver interessado no lado do desempenho dos vários mecanismos disponíveis para iterações de matriz, preparei os seguintes testes JSPerf:
https://jsperf.com/fastest-array-iterator
Resultados:
O
for()
iterador tradicional é de longe o método mais rápido, especialmente quando usado com o comprimento da matriz em cache .A
Array.prototype.forEach()
e osArray.prototype.map()
métodos são as aproximações mais lentas, provavelmente como uma consequência da sobrecarga de chamada de função .fonte
i = i +1
vez dei++
Se você estiver usando a biblioteca jQuery, considere usar http://api.jquery.com/jQuery.each/
A partir da documentação:
fonte
Ainda não vi essa variação, que eu pessoalmente gosto mais:
Dada uma matriz:
Você pode fazer um loop sobre ele sem acessar a propriedade length:
Veja este JsFiddle demonstrando que: http://jsfiddle.net/prvzk/
Isso funciona apenas para matrizes que não são esparsas. Significando que realmente existe um valor em cada índice da matriz. No entanto, descobri que na prática quase nunca uso matrizes esparsas em JavaScript ... Nesses casos, geralmente é muito mais fácil usar um objeto como um mapa / hashtable. Se você possui uma matriz esparsa e deseja fazer um loop acima de 0 .. length-1, precisa da construção for (var i = 0; i <someArray.length; ++ i), mas ainda precisa de um
if
loop interno para verificar se o elemento no índice atual está realmente definido.Além disso, como o CMS menciona em um comentário abaixo, você pode usá-lo apenas em matrizes que não contêm valores falsos. A matriz de strings do exemplo funciona, mas se você tiver strings vazias ou números 0 ou NaN, etc., o loop será interrompido prematuramente. Mais uma vez, na prática, isso quase nunca é um problema para mim, mas é algo a ter em mente, o que torna um ciclo para pensar antes de usá-lo ... Isso pode desqualificá-lo para algumas pessoas :)
O que eu gosto nesse loop é:
A razão pela qual isso funciona é que a especificação da matriz exige que, quando você ler um item de um índice> = o comprimento da matriz, ele retorne indefinido. Quando você escreve em um local, ele realmente atualiza o comprimento.
Para mim, essa construção emula mais de perto a sintaxe do Java 5 que eu amo:
... com o benefício adicional de conhecer também o índice atual dentro do loop
fonte
0
,false
,NaN
,null
ouundefined
, mesmo antes dei
atingir o tamanho, por exemplo: jsfiddle.net/prvzk/1(item=someArray[i]) !== undefined
.Existe um método para iterar apenas as propriedades do próprio objeto, sem incluir as do protótipo:
mas ainda iterará nas propriedades definidas personalizadas.
Em JavaScript, qualquer propriedade customizada pode ser atribuída a qualquer objeto, incluindo uma matriz.
Se alguém quiser iterar sobre uma matriz poupada,
for (var i = 0; i < array.length; i++) if (i in array)
ouarray.forEach
com,es5shim
deve ser usado.fonte
for (var i in array) if (++i)
?Existem algumas maneiras de fazer isso em JavaScript. Os dois primeiros exemplos são exemplos de JavaScript. O terceiro utiliza uma biblioteca JavaScript, ou seja, o jQuery fazendo uso da
.each()
função.fonte
for...in
deve ser evitado para objetos do tipo ArrayA maneira mais elegante e rápida
http://jsperf.com/native-loop-performance/8
Editado (porque eu estava errado)
Comparando métodos para fazer loop em uma matriz de 100000 itens e executar uma operação mínima com o novo valor a cada vez.
Preparação:
Testes:
fonte
A abordagem otimizada é armazenar em cache o comprimento da matriz e usar o padrão var único, inicializando todas as variáveis com a palavra-chave var única.
Se a ordem da iteração não importa, você deve tentar o loop reverso, é mais rápido, pois reduz o teste de condição de sobrecarga e o decremento está em uma instrução:
ou melhor e mais limpo para usar while loop:
fonte
Em JavaScript, existem muitas soluções para fazer um loop em uma matriz.
O código abaixo é popular
fonte
Se você deseja usar o jQuery, ele possui um bom exemplo em sua documentação:
fonte
A melhor maneira, na minha opinião, é usar a função Array.forEach. Se você não pode usar isso, sugiro obter o polyfill do MDN. Para disponibilizá-lo, é certamente a maneira mais segura de interagir com uma matriz em JavaScript.
Array.prototype.forEach ()
Então, como outros sugeriram, é quase sempre o que você deseja:
Isso garante que qualquer coisa que você precise no escopo do processamento da matriz permaneça dentro desse escopo e que esteja processando apenas os valores da matriz, não as propriedades do objeto e outros membros, e é isso que
for ..
faz.Usando um estilo C regular
for
loop comum no funciona na maioria dos casos. É importante lembrar que tudo dentro do loop compartilha seu escopo com o restante do seu programa, o {} não cria um novo escopo.Conseqüentemente:
produzirá "11" - que pode ou não ser o que você deseja.
Um exemplo de jsFiddle em funcionamento: https://jsfiddle.net/workingClassHacker/pxpv2dh5/7/
fonte
Não é 100% idêntico, mas semelhante:
fonte
Por exemplo, eu usei em um console do Firefox:
fonte
Muito mais limpo ...
fonte
z.forEach(j => console.log(j));
.Resposta curta: sim. Você pode fazer isso:
Em um console do navegador, você pode ver algo como "element1", "element2" etc., impresso.
fonte
Você pode usar
Array.prototype.forEach(...)
:Ou
Array.prototype.map(...)
:Ou o jquery ou o loop for mencionado anteriormente.
fonte