猿问

使用递归javascript反转字符串

在这个程序中,我尝试检查给定的输入是否为字符串,如果不是字符串,则表示控制台输出输入值,否则使用递归函数反转字符串。当我提供输入typeof代码时,出现错误第一行,没有它它可以正常运行......


function reverseString(str) {

  if (typeof str !== "string"){

    return str;

  }

  else{

   return reverseString(str.substr(1)) + str.charAt(0);

 }

}

console.log(reverseString("good"));


湖上湖
浏览 137回答 3
3回答

汪汪一只猫

function reverseString(str) {  if (typeof str !== "string") {    return str;  }  // you must add this line. rest of the code is fine  if (!str.length) return str; // this terminates the recursion when it reaches the end  return reverseString(str.substring(1)) + str.charAt(0);}console.log(reverseString("!detseT"));

四季花海

您可以迭代字符串并用于charAt(str.length - 1)从字符串中获取元素。然后str.slice(0, str.length - 1将从字符串中删除最后一个字符并调用相同的递归函数function reverseString(str, finalStr) {  if (!finalStr) {    finalStr = '';  }  if (str.length === 0) {    finalStr += str;    return finalStr  } else {    finalStr += str.charAt(str.length - 1);    return reverseString(str.slice(0, str.length - 1), finalStr)  }}console.log(reverseString("good"));

慕姐8265434

为什么不直接用这个?function reverseString(str) {  if (typeof str !== "string"){    return str;  }  else{   return str.split('').reverse().join(''); }}console.log(reverseString("good"));您将字符串拆分为字符数组,将其反转并加入它。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答