在实际的项目中,我们经常会有如下的需求:
从一个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] || ""
```
##总结
这个问题并不难,拿这个问题问小伙伴,一些人也可以给出正确答案。但平时没有谁这样去主动思考。
欢迎关注公众号:
相关推荐
让我们从一段代码说起,假设有一段这样的JSON数据:我们需要根据这段JSON生成这样的HTML代码:传统的Javascript代码一定是这个样子:不言而喻,这样的代码混杂了html结构和代码逻辑,而且代码不具可读性,不便于后期...
为了简化其中的代码,所以自行把代码重新整理了一下,使其每次插入动画的时候,只需要写入短短一行代码(例如:<script type="text/javascript">swf(455,200,'仿新浪焦点图','focus');),就可以达到跟Adobe官方同样的...
C#中有很多易混淆的关键词,例如delegate,Func, Action和 Predicate。Func, Action和 Predicate本质上都是delegate,下面看一下delegate概念。...下面有一段Javascript代码,JS中经常使用数组的each方法来遍
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
虽然每次整理都觉得很好了,不过每隔一段时间又会发现得某个地方可以改善,某个地方有错误,某些需求需要实现,就像自己学习的知识那样。 这里考虑到有的人可能只需要简单的拖放,所以有一个简化版的拖放SimpleDrag...
Tinkerun一种运行Tinker的新方法。...代码段:管理您已运行的代码段; 编辑器:通过编辑器运行终端代码; 输出:关注您真正关心终端返回的结果; 下一功能表单模式:将编辑器切换到表单,以便您可以修改自己的
例如,利用本书的几段代码编写程序是不需要许可的。售卖或出版O扲eilly书中示例的D-ROM需要我们的许可。引用本书回答问题以及引用示例代码不需要我们的许可。将本书的大量示例代码用于你的产品文档中需要许可。
概念 外观模式(门面模式),是一种相对简单而...JavaScript代码示例 用一段再简单不过的代码来表示 var getName = function(){ return ''svenzeng" } var getSex = function(){ return 'man' } 如果你需要分别调用ge
JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。JavaScript 的特点是无穷无尽的,只要你有创意。
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
在JavaScript代码中,可以使用window对象的alert()函数来显示一段文本,从而进行程序的调试,或者向用户警示相关信息: 代码如下: //Use window object’s alert() function window.alert(...
一款灵活通用的JavaScript验证组件,支持灵活多样的验证方式。 此为2.0版本,是在1.0基础架构上做了全新的调整, 希望能通过这个JS验证器小组件为我们码农们提供微小的帮助。 1、启用创建Validator方式,不再使用...
十六进制过滤器 一个Hexo插件,可帮助将低质量的图像占位符引入主题 安装 npm i hexo-filter-lqip --save 用法 为主题安装此插件,然后...为了使其能够用作真正的占位符,必须有一段JavaScript代码,该代码最终将用原
2.浏览器是如何工作的简化版: 3.Js由ECMAjavascript;DOM;BOM组成; 4.js是弱类型语言(即需要游览器解析了才知道是什么类型的); 5.js是脚本语言(边解析边执行); 6.script也分行内样式,嵌套样式和外联样式。 ...
Anzeixer是一组CSS和JavaScript代码段,可让您一次定义视图的阈值,从而节省时间并减少错误。 如何使用Anzeixer? 使用@media规则在CSS中定义视图 定义使用媒体查询的视图,以在特定的断点处应用CSS规则,并为视图...
根据模型组织JavaScript代码并查看职责 指示 分叉并克隆此仓库。 转到项目目录。 请遵循您老师的指示。 关注点分离 在计算机科学中,关注点分离(SoC)是将计算机程序分为不同部分的设计原理,这样每个部分都可以...
根据模型组织JavaScript代码并查看职责 指示 分叉并克隆此仓库。 转到项目目录。 请遵循您老师的指示。 关注点分离 在计算机科学中,关注点分离(SoC)是将计算机程序分为不同部分的设计原理,这样每个部分都可以...
>”界定PHP代码段。这种特性使得开发者能够轻松地在静态网页中插入动态内容,实现数据渲染、条件判断、循环处理等功能,极大地简化了Web开发流程。同时,PHP也支持纯脚本文件编写,适用于构建复杂的后台逻辑。 PHP...