javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js获取数组最大值

js获取数组中的最大值的9种方法总结

作者:一花一world

这篇文章主要为大家详细介绍了js获取数组中的最大值的9种方法,以及每种方法的工作原理和用法,文中的示例代码讲解详细,需要的可以参考下

当然,我可以给您详细说明每种方法的工作原理和用法。以下是每种方法的详细说明:

1.方法1:Math.max()和apply()

2.方法2:for循环遍历数组

3.方法3:reduce()方法

4.方法4:sort()方法

5.方法5:spread语法和Math.max()函数

6.方法6:ES6的解构赋值和sort()方法

7.方法7:ES6的解构赋值和reduce()方法

8.方法8:Math.max()函数和展开运算符(Spread Operator)

9.方法9:ES6的解构赋值和Math.max()函数

示例

1. 使用Math.max()函数和apply()方法:

const arr = [1, 3, 5, 2, 4];
const max = Math.max.apply(null, arr);
console.log(max); // 输出:5

2. 使用for循环遍历数组:

const arr = [1, 3, 5, 2, 4];
let max = arr[0];
for (let i = 1; i < arr.length; i++) {
  if (arr[i] > max) {
    max = arr[i];
  }
}
console.log(max); // 输出:5

3. 使用reduce()方法:

const arr = [1, 3, 5, 2, 4];
const max = arr.reduce((acc, cur) => Math.max(acc, cur), Number.MIN_SAFE_INTEGER);
console.log(max); // 输出:5

4. 使用sort()方法:

const arr = [1, 3, 5, 2, 4];
arr.sort((a, b) => a - b);
const max = arr[arr.length - 1];
console.log(max); // 输出:5

5. 使用spread语法和Math.max()函数:

const arr = [1, 3, 5, 2, 4];
const max = Math.max(...arr);
console.log(max); // 输出:5

6. 使用ES6的解构赋值和sort()方法:

const arr = [1, 3, 5, 2, 4];
const [max] = [...arr].sort((a, b) => b - a);
console.log(max); // 输出:5

7. 使用ES6的解构赋值和reduce()方法:

const arr = [1, 3, 5, 2, 4];
const [max] = arr.reduce(([max], cur) => cur > max ? [cur] : [max], [Number.MIN_SAFE_INTEGER]);
console.log(max); // 输出:5

8. 使用Math.max()函数和展开运算符(Spread Operator):

const arr = [1, 3, 5, 2, 4];
const max = Math.max(...arr);
console.log(max); // 输出:5

9. 使用ES6的解构赋值和Math.max()函数:

const arr = [1, 3, 5, 2, 4];
const [max] = arr.reduce(([max], cur) => cur > max ? [cur] : [max], [Number.MIN_SAFE_INTEGER]);
console.log(max); // 输出:5

场景

1.使用Math.max()函数和apply()方法:

使用场景:适用于普通的数组,不适用于大型数组。

优点:简单直接。

缺点:对于大型数组,可能会导致栈溢出。

2.使用for循环遍历数组:

使用场景:适用于普通的数组。

优点:简单直接,适用于大型数组。

缺点:需要手动编写循环代码。

3.使用reduce()方法:

使用场景:适用于普通的数组。

优点:简洁,适用于大型数组。

缺点:可能会导致性能问题,对于大型数组,reduce()方法可能会比较慢。

4.使用sort()方法:

使用场景:适用于普通的数组。

优点:简单直接,适用于大型数组。

缺点:改变了原数组的顺序。

5.使用spread语法和Math.max()函数:

使用场景:适用于普通的数组。

优点:简洁。

缺点:对于大型数组,可能会导致栈溢出。

6.使用ES6的解构赋值和sort()方法:

使用场景:适用于普通的数组。

优点:简洁。

缺点:改变了原数组的顺序。

7.使用ES6的解构赋值和reduce()方法:

使用场景:适用于普通的数组。

优点:简洁。

缺点:可能会导致性能问题,对于大型数组,reduce()方法可能会比较慢。

8.使用Math.max()函数和展开运算符(Spread Operator):

使用场景:适用于普通的数组。

优点:简洁。

缺点:对于大型数组,可能会导致栈溢出。

9.使用ES6的解构赋值和Math.max()函数:

使用场景:适用于普通的数组。

优点:简洁。

缺点:对于大型数组,可能会导致栈溢出。

把九种方法封装成一个方法

function findMax(arr) {
  // 方法1:Math.max()和apply()
  const method1 = () => {
    return Math.max.apply(null, arr);
  };
  // 方法2:for循环遍历数组
  const method2 = () => {
    let max = arr[0];
    for (let i = 1; i < arr.length; i++) {
      if (arr[i] > max) {
        max = arr[i];
      }
    }
    return max;
  };
  // 方法3:reduce()方法
  const method3 = () => {
    return arr.reduce((acc, cur) => Math.max(acc, cur), Number.MIN_SAFE_INTEGER);
  };
  // 方法4:sort()方法
  const method4 = () => {
    const sortedArr = [...arr].sort((a, b) => a - b);
    return sortedArr[arr.length - 1];
  };
  // 方法5:spread语法和Math.max()函数
  const method5 = () => {
    return Math.max(...arr);
  };
  // 方法6:ES6的解构赋值和sort()方法
  const method6 = () => {
    const [max] = [...arr].sort((a, b) => b - a);
    return max;
  };
  // 方法7:ES6的解构赋值和reduce()方法
  const method7 = () => {
    const [max] = arr.reduce(([max], cur) => cur > max ? [cur] : [max], [Number.MIN_SAFE_INTEGER]);
    return max;
  };
  // 方法8:Math.max()函数和展开运算符(Spread Operator)
  const method8 = () => {
    return Math.max(...arr);
  };
  // 方法9:ES6的解构赋值和Math.max()函数
  const method9 = () => {
    const [max] = arr.reduce(([max], cur) => cur > max ? [cur] : [max], [Number.MIN_SAFE_INTEGER]);
    return max;
  };
  return {
    method1,
    method2,
    method3,
    method4,
    method5,
    method6,
    method7,
    method8,
    method9
  };
}
// 使用示例
const arr = [1, 3, 5, 2, 4];
const maxFinder = findMax(arr);
console.log(maxFinder.method1()); // 输出:5
console.log(maxFinder.method2()); // 输出:5
console.log(maxFinder.method3()); // 输出:5
console.log(maxFinder.method4()); // 输出:5
console.log(maxFinder.method5()); // 输出:5
console.log(maxFinder.method6()); // 输出:5
console.log(maxFinder.method7()); // 输出:5
console.log(maxFinder.method8()); // 输出:5
console.log(maxFinder.method9()); // 输出:5

通过调用findMax函数,您将得到一个包含九种方法的对象,然后可以使用method1method9来调用相应的方法。每种方法都会返回数组中的最大值。

到此这篇关于js获取数组中的最大值的9种方法总结的文章就介绍到这了,更多相关js获取数组最大值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文