GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — Object.keys, values, entries by diogoosz · Pull Request #464 · javascript-tutorial/pt.javascript.info Conversation
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
|
There was an error while loading. Please reload this page.
| # 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. |
There was a problem 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:
| 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.
There was an error while loading. Please reload this page.
| 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. |
There was a problem 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:
| 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.
There was an error while loading. Please reload this page.
| |-------------|------------------|--------------| | ||
| | 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()` | |
There was a problem 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.
There was an error while loading. Please reload this page.
| 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. |
There was a problem 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:
| 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.
There was an error while loading. Please reload this page.
| 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. |
There was a problem 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:
| 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.
There was an error while loading. Please reload this page.
| ``` | ||
|
|
||
| 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. |
There was a problem 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:
| 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.
There was an error while loading. Please reload this page.
| 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`. |
There was a problem 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.
There was an error while loading. Please reload this page.
| 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". |
There was a problem 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:
| 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.
There was an error while loading. Please reload this page.
|
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. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.