直接先上代码,通过标题就可以看到是个很基础的demo。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>每天一个JavaScript实例-递归实现反转数组字符串</title>
<script>
var func = function(x,indx,str){
return indx == 0 ? str : func(x,--indx,(str +=" " + x[indx]));;
}
var arr = new Array("apple","banna","orange","apple2","apple3");
var arr1 = arr.slice(0)
var arr3 = func(arr1,arr1.length,"");
var arr2 = arr.slice(0).reverse();
console.log(arr1);
console.log(arr2);
console.log(arr);
console.log(arr3);
</script>
</head>
<body>
<div id = "date">
</div>
</body>
</html>
初学者可以F12进入开发者模式,在控制台查看打印结果。
arr1:数组的slice()方法是截取数组,只给一个0是从第一位截取到最后一位。在此作为复制数组用。
arr2:是数组自带的反转方法。
arr: 因为一直有用了slice(0),所以原数组并没有被改变。JS中很多方法(如:reverse)都是默认返回操作后的结果,为方便连缀写代码。
arr3:得到数组反转后的字符串。递归以数组长度递减至0结束。