简化一段javascript代码

作者: ITman彪叔 | 来源:发表于2018-06-17 11:29 被阅读23次

    在实际的项目中,我们经常会有如下的需求:
    从一个map中获取某key的值,如果发现对应的key的值为null,则为该key创建一个值(一般为初始值),然后把这个值存回到map中,代码如下:

    var value = map[key];
    if(value == null){
            value = "";
            map[key] = value;
    }
    

    但是总感觉这段代码很恶心,为啥,太啰嗦,太长。 实际项目中,这种操作会技巧多,如果到处都是这种操作的话,就很让人崩溃。坏蛋必须死。

    赋值操作合并

    首先,value = "" 和 map[key] = value这两行没必要写成两行,都是赋值,应此可以这样优化:

    var value = map[key];
    if(value == null){
            value = map[key]  = "";
    }
    

    去掉if判断

    如果把if判断,改成三元运算符,可以减少代码,如下:

    var value = map[key];
     value   = (value == null) ?( map[key]  = "") : value;
    

    如果用 || 符号,看起来更加方便:

    var value = map[key];
     value   = value || (map[key] = "");
    

    当然,这两行代码,最终可以合并成如下代码:

      var value = map[key]  || (map[key] = "");
    

    至此完成,最终5行代码简化成一行代码。

    另外一个答案

    拿这个问题问公司的小伙伴,下面是另外一种答案:

    var value = map[key] = map[key]  ||  ""
    

    总结

    这个问题并不难,拿这个问题问小伙伴,一些人也可以给出正确答案。但平时没有谁这样去主动思考。

    欢迎关注公众号:


    ITman彪叔公众号

    相关文章

      网友评论

        本文标题:简化一段javascript代码

        本文链接:https://www.haomeiwen.com/subject/rszyeftx.html