Mumbling--es6的一些应用

该题目可以描述为:

[abecs]     =>    [A-Bb-Eee-Cccc-Sssss]

[AbeCd]    =>    [A-Bb-Eee-Cccc-Ddddd]

 

该题目实现起来也比较简单,用传统的js代码实现如下:

 1 function accum(s) {
 2 
 3     s = s.toUpperCase().split("");
 4 
 5     for(var i=0,l=s.length; i<l; i++) {
 6 
 7         var tmp = s[i].toLowerCase();
 8 
 9         for(var j=0; j<i; j++){
10             s[i] += tmp;
11         }
12     }
13     return s.join("-");
14 }

for循环可以使用map方法来代替,所以最佳解决方案如下:

function accum(s) {
  return s.split('').map((x,index) => x.toUpperCase()+Array(index+1).join(x.toLowerCase())).join('-');
}

当然,看起来简洁了多,实际上是es6的语法糖,解决问题的思路都是一样的,这里不就此展开讨论。这里只说一下重复字符串如何实现

第一个方法里面是通过for循环来实现重复字符串,这当然可以,但是不优雅。最佳解决方案里用了一个很巧妙的方法:

Array(index+1).join(x.toLowerCase());

Array(index+1)创建了一个长度为index+1的数组,其中的每一项都为undefined。创建完数组之后,用join方法将该数组拼接成字符串;

看一下MDN对join的描述:

所有的数组元素被转换成字符串,再用一个分隔符将这些字符串连接起来。如果元素是undefined 或者null, 则会转化成空字符串

因为数组元素为undefined,所以最终的字符串其实显示的是index个分割符,这就从另一种方法实现了重复字符串

 

另外的一些方法实现重复字符串,大多是自己写了repeat函数,用的是Array.from方法

const repeat = (s, n) => Array.from({length: n}, () => s).join("")

Array.from可以将类数组转成真正的数组。接受3个参数:

第一个参数是想要转换成真实数组的类数组对象或可遍历对象

类数组对象:拥有一个 length 属性和若干索引属性的任意对象(MDN的解释)---其实只要拥有length属性就可以认为是类数组

可遍历对象:是指实现了Iterator接口的对象,即可以通过for...of进行遍历的对象,关于Iterator,这里不详介绍,以后会专门说 

第二个参数是一个函数,如果指定了,则最后生成的数组会经过该函数的加工后再返回

第三个参数是执行第二个参数时的this值

 

结合定义,就可以知道上面代码的作用,生成一个长度为n的数组,然后数组的每一项替换成字符s,在通过join返回,实现重复字符串n次

 

小结:es6里有很多激动人心的特性,比如generator,比如块作用域的引入,还有各种甜甜语法糖,善用一些es6的特性可以让代码更简洁,期待es6在浏览器端能快速普及

转载于:https://www.cnblogs.com/just4play/p/5670370.html

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值