我们经常需要求一维数组中的最大值和最小值,有时候还想知道其对应的索引值,通过for循环肯定可以求,但是当数组过大时,考虑到效率问题,会想通过现有的API求,这样不仅效率高,而且代码简洁。
思路:
(1)先根据Math.min.apply函数求数组中的最小值,也可以通过Math.max.apply函数求数组中的最大值;
(2)根据数组中的indexOf 函数,找到最小值或最大值对应的索引值
说明:
- Math.min(arg1, arg2,…)求参数的最小值
- Math.max(arg1, arg2, …)求参数的最大值
- Math.min.apply(null, 数组名): 求数组的最小值,它有两个参数,第一个参数是this指针,通过为null,第二个参数是数组名。Math.max.apply()函数同理
实战:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取数组中的最大值/最小值,并返回索引</title>
</head>
<body>
<script>
let arr = [1, 42, 23, 12, 5, 6, -100, 41]
let minValue, maxValue, minValueIndex, maxValueIndex
minValue = Math.min.apply(null, arr)
minValueIndex = arr.indexOf(minValue)
console.log('数组arr: ' + arr + ' 最小值: ' + minValue + '最小值对应的索引:' + minValueIndex)
maxValue = Math.max.apply(null, arr)
maxValueIndex = arr.indexOf(maxValue)
console.log('数组arr: ' + arr + ' 最大值: ' + maxValue + '最大值对应的索引:' + maxValueIndex)
</script>
</body>
</html>
这篇博客介绍了如何利用JavaScript的Math.min.apply和Math.max.apply函数来快速求解一维数组中的最小值和最大值,并通过indexOf方法获取它们对应的索引。这种方法适用于大规模数组,具有较高的效率和简洁的代码。示例中,作者展示了如何在数组[1, 42, 23, 12, 5, 6, -100, 41]中找到最小值和最大值及其索引。
5424

被折叠的 条评论
为什么被折叠?



