A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题描述:获取一个字符串的中间字符,如果这个字符串的长度是偶数,则返回最中间的两个字符;如果这个字符串的长度是奇数,则返回最中间的一个字符。例如: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地址:点击跳转

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马