前端中级算法题
-
数组去重
编写一个函数,接受一个数组作为输入,并返回一个去重后的新数组。
示例:
javascriptfunction removeDuplicates(arr) { return [...new Set(arr)]; } removeDuplicates([1, 2, 2, 3, 4, 4, 5]); // 输出: [1, 2, 3, 4, 5] ```
-
斐波那契数列
编写一个函数,接受一个正整数
n
作为输入,并返回斐波那契数列的第n
项的值。斐波那契数列是一个数列,其中每一项都是前两项的和,且第一项和第二项均为 1。示例:
javascriptfunction fibonacci(n) { if (n <= 2) { return 1; } let a = 1; let b = 1; for (let i = 3; i <= n; i++) { let temp = a + b; a = b; b = temp; } return b; } fibonacci(6); // 输出: 8 ```
-
判断质数
编写一个函数,接受一个正整数
num
作为输入,并判断该数是否为质数。质数是指只能被 1 和自身整除的数。示例:
javascriptfunction isPrime(num) { if (num <= 1) { return false; } for (let i = 2; i <= Math.sqrt(num); i++) { if (num % i === 0) { return false; } } return true; } isPrime(17); // 输出: true ```
-
字符串首字母大写
编写一个函数,接受一个字符串作为输入,并返回首字母大写后的字符串。
示例:
javascriptfunction capitalizeFirstLetter(str) { return str.charAt(0).toUpperCase() + str.slice(1); } capitalizeFirstLetter('hello'); // 输出: 'Hello' ```
-
数组平均值
编写一个函数,接受一个数字数组作为输入,并返回数组中所有元素的平均值。
示例:
javascriptfunction calculateAverage(arr) { const sum = arr.reduce((acc, curr) => acc + curr, 0); return sum / arr.length; } calculateAverage([1, 2, 3, 4, 5]); // 输出: 3 ```