GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Object.keys, values, entries by diogoosz · Pull Request #464 · javascript-tutorial/pt.javascript.info

Conversation

@diogoosz

@diogoosz diogoosz commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Tradução do artigo "Object.keys, values, entries" para o português, incluindo os dois exercícios.

Conforme comentado na #1.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@diogoosz
Translate 'Object.keys, values, entries' article to Portuguese
f2852ad
@CLAassistant

CLAassistant commented Nov 4, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

gabifs
gabifs reviewed Nov 7, 2026
View reviewed changes

@gabifs gabifs left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Obrigado pela tradução! Deixei algumas sugestões para deixar o texto mais natural em português.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/article.md Outdated
# Object.keys, values, entries

Let's step away from the individual data structures and talk about the iterations over them.
Vamos dar um passo atrás das estruturas de dados individuais e falar sobre como iterar sobre elas.

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

"Dar um passo atrás de algo" passa a ideia de recuar para trás de alguma coisa, não de deixar o assunto de lado. Sugestão:

Suggested change
Vamos dar um passo atrás das estruturas de dados individuais e falar sobre como iterar sobre elas.
Vamos deixar de lado as estruturas de dados individuais e falar sobre como iterar sobre elas.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/article.md Outdated
No capítulo anterior, vimos os métodos `map.keys()`, `map.values()`, `map.entries()`.

These methods are generic, there is a common agreement to use them for data structures. If we ever create a data structure of our own, we should implement them too.
Esses métodos são genéricos, existe um acordo comum para usá-los em estruturas de dados. Se um dia criarmos nossa própria estrutura de dados, devemos implementá-los também.

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Aqui a vírgula ficou igual à do inglês e a frase ficou corrida. Além disso, "acordo comum" não transmite bem a ideia de "convention". Que tal:

Suggested change
Esses métodos são genéricos, existe um acordo comum para usá-los em estruturas de dados. Se um dia criarmos nossa própria estrutura de dados, devemos implementá-los também.
Esses métodos são genéricos: há uma convenção de usá-los em estruturas de dados. Se um dia criarmos nossa própria estrutura de dados, devemos implementá-los também.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/article.md
|-------------|------------------|--------------|
| Call syntax | `map.keys()` | `Object.keys(obj)`, but not `obj.keys()` |
| Returns | iterable | "real" Array |
| Sintaxe de chamada | `map.keys()` | `Object.keys(obj)`, mas não `obj.keys()` |

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Detalhe: "Sintaxe de chamada" ficou mais largo que a célula do cabeçalho, então as colunas da tabela ficaram desalinhadas no markdown. A tabela é exibida normalmente; é só para facilitar a leitura do código-fonte. Dá para reajustar o espaçamento do cabeçalho e do separador?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/article.md Outdated
A primeira diferença é que precisamos chamar `Object.keys(obj)`, e não `obj.keys()`.

Why so? The main reason is flexibility. Remember, objects are a base of all complex structures in JavaScript. So we may have an object of our own like `data` that implements its own `data.values()` method. And we still can call `Object.values(data)` on it.
Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)` sobre ele.

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

"Chamar ... sobre ele" é tradução literal de "call ... on it" e soa estranho em português. Dá para tirar essa parte:

Suggested change
Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)` sobre ele.
Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)`.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/article.md Outdated
Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)` sobre ele.

The second difference is that `Object.*` methods return "real" array objects, not just an iterable. That's mainly for historical reasons.
A segunda diferença é que os métodos `Object.*` retornam objetos "array de verdade", e não apenas um iterável. Isso é, principalmente, por motivos históricos.

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

"Objetos 'array de verdade'" e "Isso é, principalmente, por motivos históricos" ficaram bem próximos do original em inglês. Sugestão mais natural:

Suggested change
A segunda diferença é que os métodos `Object.*` retornam objetos "array de verdade", e não apenas um iterável. Isso é, principalmente, por motivos históricos.
A segunda diferença é que os métodos `Object.*` retornam arrays "de verdade", e não apenas iteráveis. Isso se deve principalmente a motivos históricos.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/article.md Outdated
```

It may look difficult at first sight, but becomes easy to understand after you use it once or twice. We can make powerful chains of transforms this way.
Pode parecer difícil à primeira vista, mas fica fácil de entender depois que você usa uma ou duas vezes. Dá pra montar cadeias de transformações bem poderosas dessa forma.

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

"Pra" não aparece em nenhum outro lugar do 1-js/. Para manter o tom informal, mas correto, do resto do tutorial:

Suggested change
Pode parecer difícil à primeira vista, mas fica fácil de entender depois que você usa uma ou duas vezes. Dá pra montar cadeias de transformações bem poderosas dessa forma.
Pode parecer difícil à primeira vista, mas fica fácil de entender depois que você usa uma ou duas vezes. Dá para montar cadeias de transformações bem poderosas dessa forma.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/01-sum-salaries/task.md
Existe um objeto `salaries` com um número qualquer de salários.

Write the function `sumSalaries(salaries)` that returns the sum of all salaries using `Object.values` and the `for..of` loop.
Escreva a função `sumSalaries(salaries)` que retorna a soma de todos os salários, usando `Object.values` e o laço `for..of`.

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Gostei do uso de "laço" em vez de "loop", que segue a orientação de evitar palavras estrangeiras. Os capítulos mais antigos ainda usam "loop", mas isso pode ficar para outro PR.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/05-data-types/09-keys-values-entries/02-count-properties/task.md Outdated
Tente deixar o código o mais curto possível.

P.S. Ignore symbolic properties, count only "regular" ones.
P.S. Ignore propriedades simbólicas, conte apenas as "normais".

@gabifs gabifs Nov 7, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

"Apenas as 'normais'" ficou um pouco vago: o leitor pode não saber quais propriedades contar. Sugestão:

Suggested change
P.S. Ignore propriedades simbólicas, conte apenas as "normais".
P.S. Ignore propriedades simbólicas, conte apenas as propriedades "comuns" (com chaves do tipo string).

Outra opção é manter "normais", desde que o termo seja usado da mesma forma em todo o capítulo.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@diogoosz
Apply review suggestions from gabifs
0ec85c6
@diogoosz

diogoosz commented Nov 7, 2026

Copy link
Copy Markdown
Contributor Author

Obrigado, @gabifs! Apliquei as sugestões de naturalidade ("deixar de lado", "convenção", removi o "sobre ele" literal, suavizei a frase sobre arrays "de verdade"), troquei "pra" por "para" pra manter o registro do resto do 1-js/, ajustei o espaçamento da tabela, e deixei o P.S. do segundo exercício mais específico sobre quais propriedades contar.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@gabifs
gabifs merged commit 4d19a82 into javascript-tutorial:master Nov 7, 2026
1 check passed

Uh oh!

There was an error while loading. Please reload this page.

@gabifs gabifs mentioned this pull request Nov 7, 2026
Portuguese Translation Progress #1
Open
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@gabifs gabifs gabifs left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@diogoosz @CLAassistant @gabifs
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.