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