Math. max and Math. max. apply in Javascript

  • 2021-08-06 20:57:05
  • OfStack

Recently, when I was doing a small case, I encountered such a usage as Math. max. apply. I rarely encountered it before, so I recorded it.

1Math.max

Syntax: Math.max(n1,n2,n3,...,nX)
Return value: The max () method returns the number with the larger value in the specified parameter


var a = Math.max(1,2,3,4);
console.log(a); //4

However, if the data is placed in an array, it cannot be called like this at this time. The apply method is then used

2Math.max.apply

The apply () method calls a function. Simply understood as a way to call a function, but it can change the this pointing of the function and replace the parameters of the function with the specified array.

Syntax: fun.apply(thisArg, [argsArray])

thisArg: The this value specified when the fun function is running can be null, that is, the point to the fun function is not set argsArray: The passed value must be included in the array

Adding 1 here, the passed value is in the form of array, but what type of parameters are in the array and what type is returned. For example, the input array is a string, and what you get here is a string, and what you get is a value. For example, if you pass' abc ', you will return' abc '. (Supplementary note)

Return value: The return value of the apply () method is the return value of the function, because it is the calling function


var arr = [1, 66, 3, 99, 4];
var max = Math.max.apply(Math, arr);
var min = Math.min.apply(Math, arr);
console.log(max); //99
console.log(min); //1

2.1 Math. max. apply Extension Case

Here I will give another application case-automatically generating numbers (self-increasing)
Explanation: data is an json array, and each object in it has an id value


let maxBookCode = ()=>{ 
	let arr = [];  
	// Traversal json Array, putting the id Deposit to arr In this empty array, 
  data.forEach((item)=>{  
  arr.push(item.id); 
  }); 
// Finally return to the inside id The number with the largest value 
return Math.max.apply(null,arr);
}

External calls to maxBookCode () + 1 automatically generate numbers and are self-incremental.

Summarize


Related articles: