JS中的对象映射,记录学习一下

625 阅读2分钟

记录一下新学习到的技能,直入主题!!

在一个功能上,要做根据后端穿过来的数字,前端实现显示不同的名族,为什么不让后端处理,直接返回汉字字符串,直接显示,因为他可以做,你也可以做;

记得有一次,后端要我传一个逗号分隔的数字字符串给他,还要排序,像'1,2,3'这样的,我说我哪控制的住用户点击的顺序是什么,后端说那也行,你直接传过来,我sort一下也行,一语惊醒梦中人,我也可以sort一下啊,不说了,我来!!!说多了,一个小插曲,意思是,前端做的大部分后端也可以做,后端做的大部分前端也可以做。

警醒~

上代码:

function nation(key) {
  if(key === 1) {
      return nation = '汉族'
  } else if  (key === 2) {
      return nation = '苗族'
  } else if (key === 3) {
      return nation = '藏族'
  } else if (key === 4) {
      return nation = '回族'
  } else if (key === 5) {
      return nation = '壮族'
  } else if (key === 6) {
      return nation = '维吾尔族'
  }
  //....
}
console.log(nation(2)) //苗族

如果要写56个民族,看的我else if直接吐了,用switch呢?上代码:

function nation(key){
  switch(key) {
    case 1:
      return nation = '汉族'
    case 2:
      return nation = '苗族'
    case 3:
      return nation = '藏族'
    case 4:
      return nation = '壮族'
    case 5:
      return nation = '回族'
    //...
  }
}
console.log(nation(1)) //汉族

写上56个case,占据太多的代码行了,这个时候就可以js中的对象映射了,举一个简单的例子:

const nation = {
  1: '汉族', 2: '苗族', 3: '藏族',4: '维吾尔族',5: '傣族',6: '羌族'
  // ...
}
function nationFn(key) {
  return nation[key]
}
console.log(nationFn(1))//汉族

这个时候,你就可以把nation这个常量对象写在项目中的常量文件中,哪里需要引入即可,以后发生变化,也非常方便维护,是不是非常方便!!!