使用 JavaScript 函数在数组中查找最大值
Find the Max Value in an array using JavaScript function
我有这个函数,目的是找到数组中的最大(数字)元素,该值来自参数。您能否用下面的代码逐行解释一下发生了什么。
function max(arr){
var max = arr[0];
for(var i=1; i<arr.length; i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
max([4,12,3,8,0,22,56]); //output is 56
在经历循环之前,您的函数接受第一个数组元素的值作为"起始"(初始)最大值。该值是4
。
在每次循环迭代中,每个数组值都与初始"最大值"进行比较。
如果当前值大于以前的最大值 - 该当前值将覆盖它并成为最大值。
但。。。还有更简单更好的方法:是使用内置的Javascript对象,如Math
。
请考虑以下最大值搜索:
var arr = [4,12,3,80,0,22,56];
var max = Math.max.apply(null, arr);
console.log(max); // 80
上述方法更适合搜索最小值/最大值。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max
第一行。 max 函数传递数组 [4,12,3,8,0,22,56],
第二行。 max 变量设置为数组中的第一项。最大值为 4,
第三行。启动一个 for 循环,它将从 1 开始,并在 arr 数组的长度内继续循环。
第四行。检查当前数组值是否大于最大值。
因此,第一次检查 arr[1] 是否大于 max。如果是,max 设置为 arr[1]第一个循环检查 (12> 4) 是否如此 max = 12
第二次检查 arr[2] 是否大于最大值。第二个循环检查(3> 12)是否不是那么最大= 12
第三次检查 arr[3] 是否大于 max。第三个循环检查 (8> 12) 是否不是那么 max = 12
第四次检查 arr[4] 是否大于 max。第四个循环检查 (0> 12) 是否不是那么 max = 12
第五次检查 arr[5] 是否大于 max。第五个循环检查(22>12)是否如此 max = 22
第六次,它检查 arr[6] 是否大于 max。第六个循环检查 (56> 22) 是否如此 max = 56
第八行。循环已完成,并返回 max。最大值为 56
下面是代码的三个步骤。
- 代码开始将数组中的第一个元素与下一个元素进行比较。
- 在 if 条件下,它检查最大值,如果条件为 true,则存储最大值(最大值)。
- 最后返回最大值。
所以我的建议是使用JavaScript内置的reduce方法。原因如下。
如果数组包含太多元素,Math.max.apply 或 apply 方法将失败或返回错误的结果,因为它们尝试将数组元素作为函数参数传递。
所以使用没有这个问题的reduce方法
var arr = [2,4,6];
var max = arr.reduce(function(a, b) {
return Math.max(a, b);
});
console.log(max);
另一种使用reduce的方法:.reduce((a,c) => c > a ? c : a, 0)
就我而言,必须找到所有最大值,
var max = -Infinity, result = [];
for (var i = 0; i < arr.length; ++i) {
if (arr[i] < max) continue;
if (arr[i] > max) {
result = [];
max = arr[i];
}
result.push(max);
}
return result; // in case of number of occurrences of max values return result.length;
手动获取 javascript 中数组的最大和最小数量。
function max(array){
var max= array[0];
var min = array[0];
for(var i=1;i<arr.length;i++){
if(array[i]>max){
max= array[i];
}
if(array[i]<min){
min=array[i];
}
}
console.log(min+","+max);
}
- 在Javascript数组中查找绝对最大值
- 使用函数从数组中查找最小值和最大值
- 正在查找对象集合的最大值
- jQuery查找最大用户滚动值
- 在JavaScript多维数组中查找每个x值的最大值
- 在稀疏 JavaScript 数组中查找最大值
- 在带有对象的数组中查找最小值、最大值
- 使用 JavaScript 函数在数组中查找最大值
- 查找局部最大值
- 用于从数组中查找最大值的javascript代码
- 在“跨记录”中查找XML属性的最大值
- 从一个数组中查找一个属性的最大值,并将其传递给新数组
- Javascript正在查找最大值
- 在javascript数组中查找最小-最大值
- 递归地查找数组中的最大值
- 查找子对象的最大值
- 如何在 JavaScript 中的数组列表中查找最大的数组值
- Javascript数组查找最大值
- 在数组的数组中查找最大值
- 在数组中查找最大值