返回
手写 JavaScript 常用函数:分治而治轻松搞定!
前端
2023-11-11 06:05:35
手写JavaScript常用的函数:分治而治
在这个信息爆炸的时代,JavaScript 作为一门强大的脚本语言,在前端开发中发挥着举足轻重的作用。为了成为一名合格的 JavaScript 开发人员,掌握一些常用的函数是必不可少的。这些函数就像工具箱里的工具一样,可以帮助我们轻松解决各种问题,提升开发效率。
分治法,是一种经典的算法设计策略,它将一个复杂的问题分解成更小的子问题,然后递归地解决这些子问题,最终得到整个问题的解决方案。这种方法在解决一些具有递归性质的问题时非常有效。
阶乘函数
阶乘函数是一个非常常用的函数,它可以计算一个正整数的阶乘。阶乘的定义如下:
n! = n * (n-1) * (n-2) * ... * 3 * 2 * 1
例如,3 的阶乘等于 3 * 2 * 1 = 6。
// 手写阶乘函数
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(5)); // 120
递归函数
递归函数是一种函数,它会调用自身来解决问题。递归函数通常用于解决具有递归性质的问题,例如计算阶乘、遍历树形结构等。
// 手写递归函数计算斐波那契数列
function fibonacci(n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
console.log(fibonacci(10)); // 55
排序函数
排序函数是用于对数组或列表中的元素进行排序的函数。常见的排序算法包括冒泡排序、选择排序、快速排序等。
// 手写冒泡排序函数
function bubbleSort(arr) {
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
console.log(bubbleSort([3, 1, 2, 5, 4])); // [1, 2, 3, 4, 5]
查找函数
查找函数是用于在数组或列表中查找某个元素的函数。常见的查找算法包括顺序查找、二分查找等。
// 手写顺序查找函数
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) {
return i;
}
}
return -1;
}
console.log(linearSearch([1, 2, 3, 4, 5], 3)); // 2
这些只是 JavaScript 中众多常用函数中的一小部分。掌握这些函数,可以帮助我们轻松解决各种问题,提升开发效率。希望这些函数能成为你编程工具箱中不可或缺的工具!