基础练习(1):

我的解答为:

function getMiddle(s) {
if(s.length%2 == 0) {
return s.charAt(s.length/2-1)+s.charAt(s.length/2);
} else {
return s.charAt(s.length/2);
}
}

较优解答为:

function getMiddle(s)
{
return s.substr(Math.ceil(s.length / 2 - 1), s.length % 2 === 0 ? 2 : 1);
}
分析:
我的做法是先判断字符串的长度,根据长度来选择需要返回的字符。而较优解中使用了substr()方法、Math.ceil()方法以及一个三元运算符。substr()方法可以创建新字符串、Math.ceil()方法用于对一个数进行上舍入。
 
笔记:
charAt()方法,是用于访问字符串中特定字符的方法,以单字符字符串的形式返回给定位置的那个字符,接收一个参数,即基于0的字符位置。
 
substr()方法,是基于自字符串创建新字符串的方法,返回被操作字符串的一个子字符串,且接收一或两个参数,第一个参数指定子字符串的开始位置,第二个参数表示子字符串到哪里结束。substr()的第二个参数指定的是返回的字符个数。若没有传递第二个参数,则将字符串的末尾作为结束位置。对原字符串没用影响。

基础练习(2):

我的解答为:
var uniqueInOrder=function(iterable){
var newarr = [];
for(var i=0;i<iterable.length;i++) {
if(iterable[i] !== iterable[i+1]) {
newarr.push(iterable[i]);
}
}
return newarr;
}

较优解答一:

function uniqueInOrder(it) {
var result = []
var last for (var i = 0; i < it.length; i++) {
if (it[i] !== last) {
result.push(last = it[i])
}
}
return result
}

较优解答二:

var uniqueInOrder = function (iterable)
{
return [ ].filter.call(iterable, (function (a, i) { return iterable[i - 1] !== a }));
}
分析:
我的思路是基于当前字符串的判断,判断每一位与其下一位是否相等,若相等,则添加到新数组中。而较优解中则是,先设定新数组中一个值作为判定基础,若是字符串中与数组中的值不相等,则添加到新数组中。
 

PS:今天的状态很差,心态上有一些比较消极的情绪,所以做的练习也少了,笔记也少了一些。(懒惰)
 
 

JavaScript练习笔记整理·4 - 6.26的更多相关文章

  1. JavaScript练习笔记整理·1 - 6.23

    练习平台Codewars地址:https://www.codewars.com/ 欢迎和大家一起来讨论~╭( ・ㅂ・)و ̑̑   基础练习(1):   我的解答为: class SmallestIn ...

  2. JavaScript练习笔记整理·2 - 6.24

      Codewars地址:https://www.codewars.com/ 欢迎和大家一起来讨论~   基础练习(1):   我的解答为: function isIsogram(str){ if(s ...

  3. JavaScript练习笔记整理·3 - 6.25

    欢迎和大家一起来讨论~   基础练习(1):   我的解答为: function array_diff(a, b) { if (b == "") return a; return ...

  4. JavaScript学习笔记整理

    <script></script>写在<head></head>或者<body></body>中效果一样.一般写在head中或者 ...

  5. JavaScript笔记整理

    整理一篇工作中的JavaScript脚本笔记,不定时更新,笔记来自网上资料或者自己经验归纳. (1) 获取Url绝对路径 function getUrlRelativePath() { var url ...

  6. 学习ReactNative笔记整理一___JavaScript基础

    学习ReactNative笔记整理一___JavaScript基础 ★★★笔记时间- 2017-1-9 ★★★ 前言: 现在跨平台是一个趋势,这样可以减少开发和维护的成本.第一次看是看的ReactNa ...

  7. 布客&#183;ApacheCN 翻译/校对/笔记整理活动进度公告 2020.1

    注意 请贡献者查看参与方式,然后直接在 ISSUE 中认领. 翻译/校对三个文档就可以申请当负责人,我们会把你拉进合伙人群.翻译/校对五个文档的贡献者,可以申请实习证明. 请私聊片刻(52981514 ...

  8. javascript - 工作笔记 (事件四)

    在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装,  JavaScript Code  12345   yx.bind(item, "click&quo ...

  9. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. linux上的常用的进程与内存优化命令

    进程 ps命令 f 以树状结构显示 u 显示详细信息 a 显示所有进程 -A 显示所有进程 -u 用户名 是显示该用户下的进程 -l 更多进程详细信息 例子1. 以树状结构显示root用户下进程的详细 ...

  2. CDQZ Day5

    1DP #1题目名称 题目名称匹配块路径染色输入文件名 输入文件名match.in.in.inblock.inpath.inpaint.in输出文件名 输出文件名match.out.out.out.o ...

  3. 51nod 1812 树的双直径 题解【树形DP】【贪心】

    老了-稍微麻烦一点的树形DP都想不到了. 题目描述 给定一棵树,边权是整数 \(c_i\) ,找出两条不相交的链(没有公共点),使得链长的乘积最大(链长定义为这条链上所有边的权值之和,如果这条链只有 ...

  4. mvn修改版本号命令

    mvn -DnewVersion=1.0.0 -DgenerateBackupPoms=false versions:set

  5. django中使用时间帅选报RuntimeWarning: DateTimeField Coupon.valid_begin_date received a naive datetime (2018-08-16 20:51:40.135425) while time zone support is active.

    今天在使用当前时间进行筛选数据时出现了RuntimeWarning: DateTimeField Coupon.valid_begin_date received a naive datetime ( ...

  6. JavaSwing概述

    GUI(Graphic User Interface)为程序提供图形界面,它最初的设计目的是构建一个通用的GUI,使其能在所有平台上运行.在Java1.0中基础类AWT(Abstract Window ...

  7. ajax 的error参数

    ajax发生错误会进入到error中,我们在这里把错误信息从控制台中输出出来,为了避免每次写ajax都得写好几个console.log(). 我在这里写一个模板,需要用的时候直接过来拷贝. error ...

  8. 文献综述二十:基于UML技术的客户关系管理系统实现

    一.基本信息 标题:基于UML技术的客户关系管理系统实现 时间:2015 出版源:电子设计工程 文件分类:uml技术的研究 二.研究背景 设计出可应用与银行和储户之间沟通的客户关系管理系统,从而实现对 ...

  9. 3dsmax2014卸载/安装失败/如何彻底卸载清除干净3dsmax2014注册表和文件的方法

    3dsmax2014提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dsmax2014失败提示3dsmax2014安装未完成,某些产品无法安装,也有时候想重新 ...

  10. 再探display:table-cell &&左边固定、右边自适应

    display:table-cell;这个属性用的不多,它和td差不多,但是如果可以用好还是能收益不少的,下面举例说明. 1. 父元素display:table-cell,并设置verticle-al ...