前端笔试题递归含解答共5道题目一:计算斐波那契数列的第n 项。
```javascript
function fibonacci(n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
// 测试
console.log(fibonacci(5)); // 输出:5
```
题目二:实现一个阶乘函数。
```javascript
function factorial(n) {
if (n === 0 || n === 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
// 测试
console.log(factorial(4)); // 输出:24
```
题目三:实现一个递归函数,将数组元素相加。
```javascript
function sumArray(arr, n) {
if (n <= 0) {
return 0;
} else {
return sumArray(arr, n - 1) + arr[n - 1];
}
}
// 测试
console.log(sumArray([1, 2, 3, 4, 5], 3)); // 输出:6
```
题目四:实现一个递归函数,反转字符串。
```javascript
function reverseString(str) {
if (str === "") {
return str;
} else {
return reverseString(str.substr(1)) + str[0];
}
}
// 测试
console.log(reverseString("Hello")); // 输出:olleH
```
题目五:实现一个递归函数,判断字符串是否是回文。
```javascript
function isPalindrome(str) {
str = str.toLowerCase().replace(/[^a-zA-Z0-9]/g, "");
if (str.length <= 1) {
return true;
} else if (str[0] === str[str.length - 1]) {
return isPalindrome(str.substr(1, str.length - 2));
} else {
return false;
}
}
// 测试
console.log(isPalindrome("A man, a plan, a canal, Panama")); // 输出:true ```。