黑马程序员技术交流社区

标题: 【杭州校区】JS练习-获取一个字符串的中间字符 [打印本页]

作者: 喵哥    时间: 2018-10-10 19:04
标题: 【杭州校区】JS练习-获取一个字符串的中间字符
问题描述:获取一个字符串的中间字符,如果这个字符串的长度是偶数,则返回最中间的两个字符;如果这个字符串的长度是奇数,则返回最中间的一个字符。例如:abcde 返回 cabcdef 返回 cd



我的解题思路:通过字符串的 length 属性获取到字符串的长度。那么字符串中间的字符就是 s.length / 2。调用字符串的 substr() 方法,如果字符串的长度是偶数,那么就从 s.length / 2 - 1 开始,截取 2 个字符长度。如果字符串的长度是奇数,那么就从 s.length / 2 开始,截取 1 个字符的长度。由于字符串长度为奇数的情况下 s.length / 2 是个非整数,因此调用 parseInt() 或者 Math.floor() 进行取整操作。





我的代码:
[JavaScript] 纯文本查看 复制代码
function getMiddle(s) {
    if (s.length % 2 == 0) {
        return s.substr(s.length / 2 - 1, 2);
    } else {
        return s.substr(parseInt(s.length / 2), 1);
    }
}



codewars 高赞代码:
[JavaScript] 纯文本查看 复制代码
function getMiddle(s) {
    return s.substr(Math.ceil(s.length / 2 - 1), s.length % 2 === 0 ? 2 : 1);
}



github地址:点击跳转






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2