You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化对象解构后翻译数据的分组重组实现?

优化翻译数据结构的几种方案

针对你已经解构出translations对象后,要将其转换为按类型分组的语言键值对的需求,除了forEach循环外,还有几种更简洁或扩展性更好的实现方式:

方案1:直接解构+组装(最直观,无循环)

如果已知所有需要处理的键名,直接通过对象解构提取属性,再组装成目标结构,性能和可读性都不错:

const {
  snippetItem_en: itemEn,
  snippetItem_fr: itemFr,
  snippetCar_en: carEn,
  snippetCar_fr: carFr
} = translations;

const itemTranslations = { en: itemEn, fr: itemFr };
const carTranslations = { en: carEn, fr: carFr };

方案2:使用Object.fromEntries(简洁灵活)

利用Object.fromEntries将语言数组映射成键值对数组,再转换为对象,代码更紧凑:

const langs = ['en', 'fr'];

const itemTranslations = Object.fromEntries(
  langs.map(lang => [lang, translations[`snippetItem_${lang}`]])
);
const carTranslations = Object.fromEntries(
  langs.map(lang => [lang, translations[`snippetCar_${lang}`]])
);

方案3:通用处理函数(扩展性强)

如果后续可能增加更多翻译类型(比如snippetBook_en这类),可以封装一个通用函数来避免重复代码:

const langs = ['en', 'fr'];

const getTranslations = (prefix) => 
  Object.fromEntries(langs.map(lang => [lang, translations[`${prefix}_${lang}`]]));

const itemTranslations = getTranslations('snippetItem');
const carTranslations = getTranslations('snippetCar');

这些方案各有适用场景:方案1适合固定键名的小场景,代码直白;方案2和3更适合需要扩展语言或翻译类型的情况,维护成本更低。

内容的提问来源于stack exchange,提问作者jsobjectkeys2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:24:48