Avatar ·

Função map para objetos em JavaScript (análogo ao Array.prototype.map)

Olá a todos! Estou escrevendo em JavaScript há alguns meses e tive um problema. Eu sei que arrays têm o maravilhoso método `.map()`, que permite transformar cada elemento e obter um novo array. Por exemplo: ```javascript const numbers = [1, 2, 3]; const doubled = numbers.map(n => n * 2); // doubled = [2, 4, 6] ``` Mas o que fazer se eu precisar fazer o mesmo com um objeto? Eu tenho um objeto com dados de usuários: ```javascript const users = { alice: { age: 25, city: 'Moscow' }, bob: { age: 30, city: 'SPb' }, charlie: { age: 35, city: 'Kazan' } }; ``` Eu quero obter um novo objeto, onde cada usuário receba o campo `isAdult: true`, porque todos têm mais de 18 anos. Mas objetos não têm o método `.map()`! Eu tentei usar `Object.keys()` e o loop `for...of`, mas parece muito verboso. Talvez exista alguma maneira elegante, parecida com o trabalho com arrays? Ou preciso escrever minha própria função? Ficarei grato por exemplos de código e opiniões.