下面的代码应该反转句子中的所有字符,但是无法执行此操作。这对我来说是孩子的游戏,但此刻它并没有编译。有人能解决这个问题吗?
让我们说:
“聪明的极客是快速编码员”。
以下代码应按如下方式反转上述字符串:
“trams skeeg era tsaf sredoc”
function solution(S){
var result = false;
if(S.length === 1){
result = S;
}
if(S.length > 1 && S.length < 100){
var wordsArray = S.split(" "),
wordsCount = wordsAray.length,
reverseWordsString = '';
for(var i = 0; i< wordsCount; i++){
if(i > 0){
reverseWordsString = reverseWordsString + ' ';
}
reverseWordsString = reverseWordsString + wordsAray[i].split("").reverse().join("");
}
result = reverseWordsString;
}
return result;
}
答案 0 :(得分:2)
这可以为您提供您正在寻找的结果。
function reverseWords(s) {
return s.replace(/[a-z]+/ig, function(w){return w.split('').reverse().join('')});
}
答案 1 :(得分:0)
function reverseWords(s) {
var arr = s.split(" ");
s = '';
for(i = 0; i < arr.length; i++) {
s += arr[i].split('').reverse().join('').toLowerCase() + " ";
}
return s;
}
这不适合你吗?基本上它只是将字符串转换为数组,通过在空间上拆分它。然后它遍历数组,将每个字符串反转添加到一个新字符串,然后将其转换为小写。为了加快速度(你没有注意到),你可以在循环后调用newStr.toLowerCase()
,这样它就可以一次而不是每次都这样做。