JavaScript 使用 reduce 方法实现简单的 i18n 功能
i18n: 国际化 (Internationalization) 的缩写
使用 Array.prototype.reduce() 方法实现简单的 i18n 功能
reduce() 方法对数组中的每个元素按序执行一个由您提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
实现代码:
function $translate(key) {
// 翻译字典配置选项
const options = {
greetings: {
hello: "Bonjour!",
},
};
// 使用 `key` 作为索引获取 `options` 对象的深层属性
return key.split(".").reduce((o, i) => {
console.log("o", o);
console.log("i", i);
if (o) return o[i];
}, options);
// 简写
// return key.split(".").reduce((o, i) => o && o[i], options);
}
$translate("greetings.hello");
输出:
参考:
标签:return,JavaScript,reduce,key,i18n,options From: https://www.cnblogs.com/yuzhihui/p/17318500.html