小伙伴们在工作中会遇到这样的场景:
有一组变量的值是根据其他某个值来改变的,也就是一一对应,比如:
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;
这种方式,应该也还是不错的,可读性强,但貌似写的代码多了一点。
以上,欢迎各位朋友指正,也希望能看到更好更简洁的写法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。