我下面尝试了递归字符串翻转:
function reverse(str){
var results =[];
var j =0;
if(str.length === 0){
console.log('this is zero, yo');
return results.join('');
}
results[j] = str[str.length -1];
console.log('results: ' + results);
j++;
var next = str.substring(0,str.length -1);
console.log(next);
return reverse(next);
}
try{
console.log('***');
console.log(reverse('testing'));
}
catch(e){
console.log('blew the stack');
}
不幸的是,结果在函数最后一次运行时被设置为空字符串。我应该创建一个内部函数来返回results
,这样它就不会被设置为空字符串了吗?这段代码接近正确吗?
编辑:出于好奇心,我试图不使用使其变得非常容易的函数(例如reverse()
)。
results
数组做什么。尝试编写一段没有任何数组的代码,只使用字符串切片和连接。 - Bergi