简化一段javascript代码
标签:
JavaScript
在实际的项目中,我们经常会有如下的需求:
从一个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彪叔
链接:https://www.jianshu.com/p/70c47d51ca48
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦