前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简化一段javascript代码

简化一段javascript代码

作者头像
用户3158888
发布2019-05-28 14:43:31
6030
发布2019-05-28 14:43:31
举报
文章被收录于专栏:计算机图形学 前端可视化 WebGL

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

代码语言:javascript
复制
var value = map[key];
if(value == null){
        value = "";
        map[key] = value;
}

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

赋值操作合并

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

代码语言:javascript
复制
var value = map[key];
if(value == null){
        value = map[key]  = "";
}

去掉if判断

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

代码语言:javascript
复制
var value = map[key];
 value   = (value == null) ?( map[key]  = "") : value;

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

代码语言:javascript
复制
var value = map[key];
 value   = value || (map[key] = "");

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

代码语言:javascript
复制
  var value = map[key]  || (map[key] = "");

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

另外一个答案

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

代码语言:javascript
复制
var value = map[key] = map[key]  ||  ""
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 赋值操作合并
  • 去掉if判断
  • 另外一个答案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档