资讯专栏INFORMATION COLUMN

js中关于判断取值的问题

Gilbertat / 635人阅读

摘要:最后一种方式深圳深圳大学广东省北京北京大学北京市武汉武汉大学湖北省这种方式,应该也还是不错的,可读性强,但貌似写的代码多了一点。

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

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;

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79960.html

相关文章

  • VUE - MVVM - part13 - inject & 总结

    摘要:通过装作这些变化,我们实现了从而到达了数据变化触发函数的过程。于此同时,我们还实现了来扩展这个可响应的结构,让这个对象拥有了触发和响应事件的能力。最后,根据我们的实现,这是最终的产出,一个框架,了解一下系列文章地址优化优化总结 看这篇之前,如果没有看过之前的文章,移步拉到文章末尾查看之前的文章。 provide / inject 在上一步我们实现了,父子组件,和 props 一样 pr...

    niuxiaowei111 评论0 收藏0
  • Java中关包装类型容易入坑一个点

    摘要:二调试过程经过后发现,在类型数值比较中使用的是,咋看之下没啥问题,其实是有问题的在这里为包装类,是一个对象。使用包装类重写过的方法就可以正确对包装类型的数值正确进行判断了。 一、问题描述 在一次对树形结构的数据遍历中,出现了树形变乱的问题,在此遍历的ID采用Long类型,在数值比较中达到某个界定值后,树形结构变形。 showImg(https://segmentfault.com/im...

    时飞 评论0 收藏0
  • Angular中关时间操作总结

    摘要:上显示出来时间本地系统显示时间发送前控制台打印出来浏览器网络中监测显示解决方案只有在发送时间类型的数据时会进行转换,导致相差个小时,但是我发送前就将其转换成字符串,就不会造成这样的结果了。 创建时间 使用new Date(),可以看见有5种构造函数 showImg(https://segmentfault.com/img/remote/1460000013946509); co...

    mengera88 评论0 收藏0
  • VUE - MVVM - part1 - defineProperty

    摘要:在中关于如何实现在网上可以搜出不少,在看了部分源码后,梳理一下内容。换个说法,当我们取值的时候,函数自动帮我们添加了针对当前值的依赖,当这个值发生变化的时候,处理了这些依赖,比如说节点的变化。 在 VUE 中关于如何实现在网上可以搜出不少,在看了部分源码后,梳理一下内容。 首先,我们需要了解一下 js 中的一个 API :Object.defineProperty(obj, prop,...

    liukai90 评论0 收藏0
  • js笔记系列之--位置及相对位置事件坐标

    摘要:入门系列之位置及相对位置事件坐标写过代码的一般都知道,在页面操作中,坐标概念是一个很重要的概念,几乎所有的页面交互都牵扯到坐标的概念。,及表示的是事件触发点相对于事件发生所在节点左上角的位置。我们可以通过获取到元素相对于文档的位置信息。 js入门系列之 位置及相对位置事件坐标 写过代码的一般都知道,在页面操作中,坐标概念是一个很重要的概念,几乎所有的页面交互都牵扯到坐标的概念。尤...

    Michael_Ding 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<