Home > Web Front-end > JS Tutorial > How to use JS to find the maximum element of a Number type array

How to use JS to find the maximum element of a Number type array

php中世界最好的语言
Release: 2018-05-26 14:49:12
Original
1760 people have browsed it

This time I will show you how to use JS to find the maximum element of a Number type array, and what are the precautions for using JS to find the maximum element of a Number type array. The following is a practical case, let's take a look.

Four methods are introduced below.

1. Do not use any library function

The code is as follows:

function findMax1 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    for (let i = 0; i < arr.length; i++) {
      result = arr[i] > result ? arr[i] : result;
    }
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
Copy after login
Explanation:

Use a variable result to store the maximum value. Traverse the array to be searched. If the currently traversed element is greater than result, assign this element to result.

2. Use Array.reduce()

The code is as follows:

function findMax2 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = arr.reduce((a, b) => {
      return a > b ? a : b;
    }, 0);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
Copy after login
Explanation:

The reduce method is through a function , for an accumulator and each element in the array, ultimately reducing an array to a single value.

reduce accepts two parameters:

The first one is callback, which is the function mentioned earlier. It has four parameters:

  1. accumulator: Accumulator, which is the result of the last callback run. If initialValue is provided, then the first time is initialValue;

  2. currentValue: the elements of the currently traversed array;

  3. currentIndex: the currently traversed The index of the array element, starting from 0. If initialValue is provided, it starts from 1;

  4. array: the array to which reduce is currently applied.

The second is initialValue, which is an initial value and is used as the first actual parameter of the first run of the callback function. This is optional. Please note here that if this parameter is not provided and is applied to an empty array, an error will be reported.

Then the meaning of the above code is that each time

traverses the array for comparison, the larger one is left, that is, the accumulator, and is used for the next comparison with the array elements. In the end, only this value is left, which is the maximum value.

3. Use Apply and Math.max()

The code is as follows:

function findMax3 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max.apply(null, arr);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
Copy after login
Explanation:

apply explanation is slightly clearer Complex, no further explanation.

It accepts two parameters, the first is thisArg and the second is argsArray. Both are optional. To put it simply, when using a function, the parameters are passed in as an array.

4. Only use Math.max()

The code is as follows:

function findMax4 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max(...arr);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
Copy after login
Explanation:

Based on the previous solution The idea is that in ES6, there is a spread operator (...) that can separate the elements in an array into a comma-separated sequence. Just meets the needs of the Math.max() function.

Let me introduce to you some knowledge points related to number, Math and arrays in JS

1. Number object.

How to create a Number object:

Method 1:

var variable = new Number (number)

Method 2:

var variable = number;

Commonly used method:

toString() Convert the number into a string in the specified base form. (Enter a number and it will be converted into a number, number.toString(2))

toFixed() specifies that decimal places are retained and it also has a rounding function.

2. Math 

Math objectCommonly used methods:

ceil round up

floor() round down

random() random number method // The pseudo-random number generated is between 0 and 1 (including 0, excluding 1),

round rounding

3 ,

Array arrayObject:

Method to create an array 1:

var variable name = new Array(); Create an array with a length of 0.

Method 2:

var variable name = new Array(length) creates an array object of specified length.

Method 3:

var 变量名 = new Array("元素1","元素2"...); 给数组指定元素创建数组 的对象。

方式4:

var 变量名 = ["元素1","元素2"...];

数组要注意的细节:

1. 在javascript中数组的长度是可以发生变化的。

var arr = new Array(); //创建了一个长度为0的数组对象。
arr[100] = 10;
document.write("arr长度:"+arr.length+"<br/>");
var arr2 = new Array("狗娃","狗剩","铁蛋");
arr2 = ["狗娃","狗剩","铁蛋","张三"];
document.write("arr2长度:"+arr2.length+"<br/>");
Copy after login

3.1数字的方法

a、concat把arr1与arr2的数组元素组成一个新的数组返回。  
arr1 = arr1.concat(arr2);
Copy after login

b、join使用指定的分隔符把数组中的元素拼装成一个字符串返回。

var elements = arr1.join(",");
Copy after login

c、pop :移除数组中的最后一个元素并返回该元素。

d、push:将新元素添加到一个数组中,并返回数组的新长度值。

arr1.push("你好");
Copy after login

e、reverse(); 翻转数组的元素

f、slice指定数组 的开始索引值与结束索引值截取数组的元素,并且返回子数组。(包头不包尾)

var subArr = arr1.slice(1,2);
Copy after login

g、sort排序,排序的时候一定要传入排序的方法。(不传时默认是按照ASCII表排列)

arr1 = [19,1,20,5];
arr1.sort(sortNumber); //排序,排序的时候一定要传入排序的方法。
function sortNumber(num1,num2){ 
return num1-num2;
}
Copy after login

h、splice第一个参数是开始删除元素的 索引值, 第二参数是删除元素的个数,往后的数据就是插入的元素(也可以不写)。

arr1.splice(1,1,"张三","李四","王五");
Copy after login

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎样使用vue2.0资源文件assets和static

如何使用Angular内Router(路由)应用

The above is the detailed content of How to use JS to find the maximum element of a Number type array. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template