在实际的项目中,我们经常会有如下的需求:

从一个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]  ||  ""

```

##总结

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

 

欢迎关注公众号:

 

简化一段javascript代码
ITman彪叔公众号

 

相关文章:

  • 2021-04-18
  • 2022-12-23
  • 2021-05-16
  • 2021-05-19
  • 2021-12-16
  • 2022-12-23
猜你喜欢
  • 2022-01-23
  • 2022-01-31
  • 2021-09-20
  • 2021-06-08
  • 2021-06-22
  • 2022-01-20
  • 2021-10-29
相关资源
相似解决方案