以下代码有什么问题
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
是该网站所说的内容。这有什么不对?
答案 0 :(得分:1)
试试这个:
function reverse(s){
return s.split("").reverse().join("");
}
答案 1 :(得分:1)
readline
函数不接受任何参数。只需删除str
并保持此行
FirstReverse(readline());
您正在使用i = str.length
开始循环,因此当您第一次执行str[i]
时,您将获得undefined
。所以,你应该从str.length - 1
开始。
此外,您可以直接退回backwards
,在返回之前,您不必将其存储在str
中。
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;
}