前端中级算法题
数组去重
编写一个函数,接受一个数组作为输入,并返回一个去重后的新数组。
示例:
function removeDuplicates(arr) {return [...new Set(arr)];}removeDuplicates([1, 2, 2, 3, 4, 4, 5]); // 输出: [1, 2, 3, 4, 5]```
斐波那契数列
编写一个函数,接受一个正整数
n
作为输入,并返回斐波那契数列的第n
项的值。斐波那契数列是一个数列,其中每一项都是前两项的和,且第一项和第二项均为 1。示例:
function 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 和自身整除的数。示例:
function 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```
字符串首字母大写
编写一个函数,接受一个字符串作为输入,并返回首字母大写后的字符串。
示例:
function capitalizeFirstLetter(str) {return str.charAt(0).toUpperCase() + str.slice(1);}capitalizeFirstLetter('hello'); // 输出: 'Hello'```
数组平均值
编写一个函数,接受一个数字数组作为输入,并返回数组中所有元素的平均值。
示例:
function calculateAverage(arr) {const sum = arr.reduce((acc, curr) => acc + curr, 0);return sum / arr.length;}calculateAverage([1, 2, 3, 4, 5]); // 输出: 3```