首页 > 编程语言 >JavaScript 使用 reduce 方法实现简单的 i18n 功能

JavaScript 使用 reduce 方法实现简单的 i18n 功能

时间:2023-04-14 15:46:38浏览次数:40  
标签:return JavaScript reduce key i18n options

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");

输出:

img

参考:

  1. 编写一个插件

  2. Array.prototype.reduce()

标签:return,JavaScript,reduce,key,i18n,options
From: https://www.cnblogs.com/yuzhihui/p/17318500.html

相关文章

  • JavaScript 之 JSON [4] parse()和stringify() -JSON字符串和JavaScript对象数据之间
    JavaScript之JSON[4]parse()和stringify()-JSON字符串和JavaScript对象数据之间的相互转换1、JSON.parse()JSON.parse()方法用于将一个JSON字符串解析为一个JavaScript对象。JSON字符串必须使用双引号包括属性名和字符串值,不能使用单引号或无引号。语法:JSON.parse(text,r......
  • 原型及原型链-JavaScript教程
    JavaScript是世界上最流行的脚本语言。JavaScript是属于web的语言,它适用于PC、笔记本电脑、平板电脑和移动电话。JavaScript被设计为向HTML页面增加交互性。许多HTML开发者都不是程序员,但是JavaScript却拥有非常简单的语法。几乎每个人都有能力将小的JavaScript......
  • JavaScript 之 confirm,alert,prompt
    //confirmfunctiondisp_confirm(){varr=confirm("Pressabutton!")if(r==true){alert("YoupressedOK!")}else{alert("YoupressedCancel!")}}//alert<script>window.alert("确......
  • JavaScript 之 JSON [1]介绍、语法、值
    JavaScript之JSON[1]介绍、语法、值1、简介JSON指的是JavaScript对象表示法(JavaScriptObjectNotation)JSON是轻量级的文本数据交换格式JSON使用Javascript语法来描述数据对象,但JSON仍独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。目前非常......
  • JavaScript 变量、标识符和四则运算
    JavaScript基础第二天变量什么是变量?变量由四个部分组成:1.var:声明变量的关键字2.变量名字1.变量的名字可以包含:字母,数字2.不能以数字开头3.不能使用关键字保留字比如var、if、for、列:web、_001、_number3.等于号=在js中它叫做赋值号4.值,赋值号后面的叫做值(变......
  • Javascript内置对象
    内置对象(常用方法)Math(不是构造函数,直接调用)/**@file封装自己的myMath对象@authorlxs/varmyMath={PI:3.1415926,/*@description求最小值@returns{Number}max@examplemax(3,5)//5/max:function(){varmax=arguments[0];for(vari=1;i<arg......
  • JavaScript黑科技:变量监听
    作者:JShaman团队,转载请保留功能目标实时监视一个变量的值,当值发生改变时,马上给出提示。实现方法一直观且朴素的方法,可以用setInterval,循环检测变量的值,示例代码:<html><body><script>//要监视的变量vartest_value=1;setInterval(function(){......
  • 4、Web前端学习规划:JavaScript - 学习规划系列文章
          JavaScript作为Web前端里的第3重要的语言,笔者认为该重点进行学习。因为JavaScript衍生出来的框架和类库有不少,而且很强大。所以JavaScript的学习要抓好重点,在基本的语法及应用上学习相关的框架和类库,更好的为Web前端的开发应用做好准备。 1、简介;JavaSc......
  • Javascript对象
    对象对象是一组无序的相关属性和方法的集合,所有事物都是对象,例如字符串,数值,数组,函数对象由属性和方法组成属性:事物的特征,常用名词方法:事物的行为,常用动词创建对象利用对象字面量创建对象varobj={uname:'tom',age:18,sex:'男',......
  • JavaScript 数组字符串转换Json格式
    JavaScript数组字符串转换Json格式//滔Roy2023.04.13functionparseStringToArray(str){//尝试将字符串解析为JSON格式try{constarr=JSON.parse(str);//如果解析成功,则直接返回解析结果if(Array.isArray(arr)){returnarr;}}......