js中关于判断取值的问题

小伙伴们在工作中会遇到这样的场景:
有一组变量的值是根据其他某个值来改变的,也就是一一对应,比如:

var cityCode = "城市区号",    cityName = "城市名称",    university = "最高学府",    province = "所属省份";

城市区号是具有唯一性的,而另外三个值和城市区号是已具有关联性的。如果城市编号不确定,但咱们就得做判断,一般有if...else,switch...case,如下:

if( cityCode == "0755") {    cityName = "深圳";    university = "深圳大学";    province = "广东省";} else if( cityCode == "010") {    cityName = "北京";    university = "北京大学";    province = "北京市";} else if( cityCode == "027") {    cityName = "武汉";    university = "武汉大学";    province = "湖北省";}

或者:

switch (cityCode) {    case "0755" :     cityName = "深圳";    university = "深圳大学";    province = "广东省";    break;    case "010" :     cityName = "北京";    university = "北京大学";    province = "北京市";    break;    case "027" :     cityName = "武汉";    university = "武汉大学";    province = "湖北省";    break;}

还有一种方式:

cityName = {"0755" : "深圳", "010" : "北京", "027" : "武汉"}[cityCode] || "没有定义";university = {"0755" : "深圳大学", "010" : "北京大学", "027" : "武汉大学"}[cityCode] || "没有定义";province = {"0755" : "广东省", "010" : "北京市", "027" : "湖北省"}[cityCode] || "没有定义";

相比上面两种,这种方式的可读性可能稍微差了那么一点点,可是简洁了许多。
但还是重复了一些,根据城市编码取了三个变量的值,结果每取一次,就要要写一次城市编码,反而不那么简洁了。

最后一种方式:

var cityMode = {    "0755" : {        cityCode : "0755",        cityName : "深圳",        university : "深圳大学",        province : "广东省"    },    "010" : {        cityCode : "010",        cityName : "北京",        university : "北京大学",        province : "北京市"    },    "027" : {        cityCode : "027",        cityName : "武汉",        university : "武汉大学",        province : "湖北省"    }};cityName = cityMode[cityCode].cityNanme;university = cityMode[cityCode].university;province = cityMode[cityCode].province;

这种方式,应该也还是不错的,可读性强,但貌似写的代码多了一点。

以上,欢迎各位朋友指正,也希望能看到更好更简洁的写法。

关键字:JavaScript


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部