接受字符串并返回字符串反转的函数

时间:2014-04-17 03:08:40

标签: javascript

以下代码有什么问题

function FirstReverse(str) { 
  var backwards = "";
  for(var i = str.length; i>=0;i--){
     backwards += str[i];
      }
  str = backwards;  
  return str; 

}

// keep this function call here 
// to see how to enter arguments in JavaScript scroll down
FirstReverse(readline(str)); 

这是http://coderbyte.com/CodingArea/GuestEditor.php?ct=First%20Reverse&lan=JavaScript上的第一个挑战,它返回的唯一错误是ReferenceError: readline is not defined,但readline是该网站所说的内容。这有什么不对?

5 个答案:

答案 0 :(得分:1)

试试这个:

function reverse(s){
    return s.split("").reverse().join("");
}

警告:https://stackoverflow.com/a/16776621/1636522

答案 1 :(得分:1)

  1. readline函数不接受任何参数。只需删除str并保持此行

    即可
    FirstReverse(readline());
    
  2. 您正在使用i = str.length开始循环,因此当您第一次执行str[i]时,您将获得undefined。所以,你应该从str.length - 1开始。

  3. 此外,您可以直接退回backwards,在返回之前,您不必将其存储在str中。


  4. function FirstReverse(str) {
        var backwards = "";
        for (var i = str.length - 1; i >= 0; i--) {
            backwards += str[i];
        }
        return backwards;
    }
    

    此外,我测试了这些变化并且有效。

答案 2 :(得分:0)

第一次执行循环体时,i的值为str.length。这是str的最后一个元素之外的元素,它位于索引str.length - 1

固定代码:

function FirstReverse(str) { 
  var backwards = "";
  for (var i = str.length - 1; i >= 0; i--) {
     backwards += str[i];
  }
  str = backwards;  
  return str; 
}

答案 3 :(得分:0)

应该是

function FirstReverse(str) { 
  var backwards = "";
  for(var i = str.length - 1; i>=0;i--){
     backwards += str[i];
      }
  str = backwards;  
  return str; 

}

因为索引时从0开始到长度减去字符串

之一

答案 4 :(得分:0)

尝试

function FirstReverse(str) { 
  var backwards = "";
  for(var i = str.length - 1; i>=0; --i){
     backwards += str[i];
  }
  return backwards;  
}