javascript - 如何为数组中的所有对象更新键

标签 javascript node.js reactjs

我在输入上有这个数组:

const categories = [ 
  { id: 9, name: 'General Knowledge' },
  { id: 10, name: 'Entertainment: Books' },
  { id: 11, name: 'Entertainment: Film' },
  { id: 12, name: 'Entertainment: Music' },
  { id: 13, name: 'Entertainment: Musicals & Theatres' },
  { id: 14, name: 'Entertainment: Television' },
  { id: 15, name: 'Entertainment: Video Games' },
  { id: 16, name: 'Entertainment: Board Games' },
  { id: 17, name: 'Science & Nature' },
  { id: 18, name: 'Science: Computers' },
  { id: 19, name: 'Science: Mathematics' },
  { id: 20, name: 'Mythology' },
  { id: 21, name: 'Sports' },
  { id: 22, name: 'Geography' },
  { id: 23, name: 'History' },
  { id: 24, name: 'Politics' },
  { id: 25, name: 'Art' },
  { id: 26, name: 'Celebrities' },
  { id: 27, name: 'Animals' },
  { id: 28, name: 'Vehicles' },
  { id: 29, name: 'Entertainment: Comics' },
  { id: 30, name: 'Science: Gadgets' },
  { id: 31, name: 'Entertainment: Japanese Anime & Manga' },
  { id: 32, name: 'Entertainment: Cartoon & Animations' } 
]

我需要翻译我的对象的所有键名。 为此,我使用了谷歌翻译 API。

代码如下:

googleTranslate.translate(categories.map(i => i.name), 'en', 'fr', function(err, translations) {
     console.log(translations.map(tr => tr.translatedText))
})

所以结果是:

[ 'Culture générale',
  'Divertissement: livres',
  'Divertissement: Film',
  'Divertissement: Musique',
  'Divertissement: comédies musicales et théâtres',
  'Divertissement: Télévision',
  'Divertissement: jeux vidéo',
  'Divertissement: jeux de société',
  'Science et nature',
  'Science: Informatique',
  'Science: Mathématiques',
  'Mythologie',
  'Des sports',
  'La géographie',
  'L\'histoire',
  'Politique',
  'Art',
  'Célébrités',
  'Animaux',
  'Véhicules',
  'Divertissement: BD',
  'Science: Gadgets',
  'Divertissement: anime et manga japonais',
  'Divertissement: dessin animé et animations' ]

但我想保留第一个数组的结构。仅使用翻译更新 key 名称。

输出:

const categories = [ 
  { id: 9, name: 'Culture générale' },
  { id: 10, name: 'Divertissement: livres' },
  { id: 11, name: 'Divertissement: Film' },
  { id: 12, name: 'Divertissement: Musique' },
  { id: 13, name: 'Divertissement: comédies musicales et théâtres' },
  { id: 14, name: 'Divertissement: Télévision' },
  { id: 15, name: 'Divertissement: jeux vidéo' },
  { id: 16, name: 'Divertissement: jeux de société' },
  { id: 17, name: 'Science et nature' },
  { id: 18, name: 'Science: Informatique' },
  { id: 19, name: 'Science: Mathématiques' },
  { id: 20, name: 'Mythologie' },
  { id: 21, name: 'Des sports' },
  { id: 22, name: 'La géographie' },
  { id: 23, name: 'L\'histoire' },
  { id: 24, name: 'Politique' },
  { id: 25, name: 'Art' },
  { id: 26, name: 'Célébrités' },
  { id: 27, name: 'Animaux' },
  { id: 28, name: 'Véhicules' },
  { id: 29, name: 'Divertissement: BD' },
  { id: 30, name: 'Science: Gadgets' },
  { id: 31, name: 'Divertissement: anime et manga japonais' },
  { id: 32, name: 'Divertissement: dessin animé et animations' } 
]

我还没有找到如何去做。 提前感谢您的宝贵时间。

最佳答案

最简单的方法是:

googleTranslate.translate(categories.map(i => i.name), 'en', 'fr', function(err, translations) {
     console.log(translations.map(tr => {
       id: tr.id, 
       name: tr.name 
     }
  ))
})

关于javascript - 如何为数组中的所有对象更新键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57649742/

相关文章:

javascript - 将事件从 HTML 元素冒泡到 iframe

javascript - 如何在 Angular 6 中使用 RoundSliderUI

node.js - ObjectionJS关系模型类未定义

node.js - 请求中没有发送 req.params

javascript - Next.js页面如何设置pageProps属性?

javascript - object` ("[object Response]") 不能序列化为 JSON?

javascript - 如何在 OL3 中使用 SLD 设置图层样式

javascript - 如何调用在另一个 Angular 模块中声明的 ui-router 状态

javascript - 编写 koa 异步函数中间件时出错

ajax - [React]将异步数据获取到组件中的不同方式