📌  相关文章
📜  如何在 JavaScript 中找到没有数学函数的最小值最大值?(1)

📅  最后修改于: 2023-12-03 15:38:17.799000             🧑  作者: Mango

如何在 JavaScript 中找到没有数学函数的最小值最大值?

在 JavaScript 中,我们通常使用 Math 对象中的 min() 和 max() 函数来找到数组中的最小值和最大值。然而,有时候我们可能需要找到没有 pre-built 函数的最小值和最大值。在这篇文章中,我们将介绍一些方法来实现这一目标。

方法一:使用 for 循环

我们可以使用 for 循环来遍历数组并找到最小值和最大值。首先,我们将数组的第一个元素作为最小值和最大值。然后我们遍历数组,如果当前元素小于最小值,我们将其替换为最小值,如果当前元素大于最大值,我们将其替换为最大值。最后,我们返回找到的最小值和最大值。

function findMinMax(arr) {
  let min = arr[0];
  let max = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < min) {
      min = arr[i];
    }
    if (arr[i] > max) {
      max = arr[i];
    }
  }
  return [min, max];
}

这个函数接受一个数组作为参数,并返回一个包含数组中最小值和最大值的数组。

方法二:使用 reduce() 方法

我们也可以使用数组的 reduce() 方法,并结合一个回调函数来找到最小值和最大值。在回调函数中,我们比较当前元素和累加器的值,如果当前元素小于累加器的值,我们更新最小值,如果当前元素大于累加器的值,我们更新最大值。最后,我们返回找到的最小值和最大值。

function findMinMax(arr) {
  let result = arr.reduce(function(acc, val) {
    if (val < acc[0]) {
      acc[0] = val;
    }
    if (val > acc[1]) {
      acc[1] = val;
    }
    return acc;
  }, [arr[0], arr[0]]);
  return result;
}

这个函数也接受一个数组作为参数,并返回一个包含数组中最小值和最大值的数组。与第一个方法不同的是,reduce() 方法只需要一个遍历数组的循环,因此也更加高效。

以上是在 JavaScript 中找到没有数学函数的最小值最大值的两种方法。无论你使用哪种方法,都需要了解这些可以让你更加灵活地操作数字数组的技巧。