NULL
当我试图运行它时它返回了我" undefined"。我想知道这里的问题是什么。
答案 0 :(得分:0)
看看:
var a = "gsdgtrshghf";
function reverseString(strr) {
var result = "";
if (strr.length != null) {
for (var i = strr.length - 1; i >= 0; i--) {
var a = strr.charAt(i);
result += a;
}
}
return result;
}
console.log(reverseString(a));
// Better
const reverse = str => Array.from(str).reverse().join('');
console.log(reverse('foo bar mañana mañana'));
解释
charAt(i)
而非chatAt(i)
i
应减少即for(var i = strr.length - ; i >= 0; i--){
不是for(var i=strr.length;i>0;i++){
Array.from(str).reverse().join('')
的组合,因为它甚至可以与Unicode字符一起使用,正如gaetanoM的评论中指出的那样答案 1 :(得分:0)
主要原因是你声明var result=""
并从if外部返回(因此它变得未定义,因为它的范围仅在if语句中)并且在注释you have a typo, charAt not chatAt. You can also simply use strr[i] to get the char. Also, you should do i-- and i >= 0 if you start at strr.length, otherwise for loop is immediately completed at the condition check
中提到了其他错误区域。请检查以下代码。
var a = "gsdgtrshghf";
function reverseString(strr){
var result="";
if (strr.length){
for(var i=strr.length-1;i>=0;i--){
var a=strr.charAt(i);
result+=a;
}
}
return result;
}
console.log(reverseString(a))