Skip to content

Iterables - #461

Merged
gabifs merged 2 commits into
javascript-tutorial:masterfrom
diogoosz:translate-iterables
Nov 6, 2026
Merged

gabifs merged 2 commits into
javascript-tutorial:masterfrom
diogoosz:translate-iterables

Conversation

@diogoosz

@diogoosz diogoosz commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Tradução do artigo "Iterables" para o português.

Conforme comentado na #1.

Ou seja, o objeto iterador fica separado do objeto sobre o qual ele itera.

Technically, we may merge them and use `range` itself as the iterator to make the code simpler.
Na prática, podemos juntar os dois e usar o próprio `range` como iterador, deixando o código mais simples.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Technically, we may merge them" fala que é possível juntar os dois. "Na prática" dá a ideia de que é o que se costuma fazer, e isso contradiz o parágrafo anterior.

Suggested change
Na prática, podemos juntar os dois e usar o próprio `range` como iterador, deixando o código mais simples.
Tecnicamente, podemos juntar os dois e usar o próprio `range` como iterador, deixando o código mais simples.

```

Now `range[Symbol.iterator]()` returns the `range` object itself: it has the necessary `next()` method and remembers the current iteration progress in `this.current`. Shorter? Yes. And sometimes that's fine too.
Agora `range[Symbol.iterator]()` retorna o próprio objeto `range`: ele já tem o método `next()` necessário e guarda o progresso da iteração atual em `this.current`. Mais curto? Sim. E às vezes isso é até melhor.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O original diz "And sometimes that's fine too", ou seja, que às vezes isso também serve. "Até melhor" muda o sentido, e o parágrafo seguinte mostra justamente a desvantagem dessa abordagem.

Suggested change
Agora `range[Symbol.iterator]()` retorna o próprio objeto `range`: ele já tem o método `next()` necessário e guarda o progresso da iteração atual em `this.current`. Mais curto? Sim. E às vezes isso é até melhor.
Agora `range[Symbol.iterator]()` retorna o próprio objeto `range`: ele já tem o método `next()` necessário e guarda o progresso da iteração atual em `this.current`. Mais curto? Sim. E às vezes isso também serve.

```

And it works correctly with surrogate pairs!
E funciona corretamente até com pares substitutos (surrogate pairs)!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O original não tem esse parêntese, e o artigo de unicode (1-js/99-js-misc/06-unicode) usa só "pares substitutos". Sugiro tirar o termo em inglês.

Suggested change
E funciona corretamente até com pares substitutos (surrogate pairs)!
E funciona corretamente até com pares substitutos!

Isso raramente é necessário, mas nos dá mais controle sobre o processo do que o `for..of`. Por exemplo, podemos dividir o processo de iteração: iterar um pouco, parar, fazer outra coisa, e continuar depois.

## Iterables and array-likes [#array-like]
## Iteráveis e array-likes [#array-like]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O termo "array-like(s)" ficou em inglês ao longo de todo o texto (linhas 166, 173–181, 196, 200, 217, 303–307), com plural em inglês. As diretrizes de tradução pedem para evitar palavras estrangeiras. Na linha 171 você já explica o termo como "parecidos com array". Que tal usar algo como "objetos semelhantes a array" no restante do texto e deixar "array-like" só nessa explicação e na âncora [#array-like]?

Suggested change
## Iteráveis e array-likes [#array-like]
## Iteráveis e objetos semelhantes a array [#array-like]

Objetos *iteráveis* são uma generalização dos arrays. Esse é um conceito que permite usar qualquer objeto em um laço `for..of`.

Of course, Arrays are iterable. But there are many other built-in objects, that are iterable as well. For instance, strings are also iterable.
Claro, Arrays são iteráveis. Mas existem vários outros objetos nativos que também são iteráveis. Strings, por exemplo, também são iteráveis.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "arrays" em minúsculo, como no resto do texto.

Suggested change
Claro, Arrays são iteráveis. Mas existem vários outros objetos nativos que também são iteráveis. Strings, por exemplo, também são iteráveis.
Claro, arrays são iteráveis. Mas existem vários outros objetos nativos que também são iteráveis. Strings, por exemplo, também são iteráveis.

@diogoosz

diogoosz commented Nov 6, 2026

Copy link
Copy Markdown
Contributor Author

Obrigado pela revisão, @gabifs! Apliquei todas as sugestões: corrigi o sentido de "technically"/"and sometimes that's fine too", removi o parêntese em inglês desnecessário, troquei "array-like(s)" por "semelhante(s) a array" no corpo do texto (mantendo só na explicação inicial e na âncora), e corrigi o "Arrays" minúsculo.

@gabifs
gabifs merged commit b865595 into javascript-tutorial:master Nov 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants