[JavaScript] 배열에서 가장 큰 수 구하는법 (Function.prototype.apply(), 스프레드 연산자)

1. Function.prototype.apply(this객체, 함수에 전달할 배열) 

 

문자열에서 최대값, 최소값을 구할 때는 Math.max(), Math.min()을 사용했다.

배열에서 가장 큰 수를 구할 때는 Function.prototype.apply() 의 형태를 이용해서 Math.max.apply() 로 최대값을 구할 수 있다.

첫 번째 파라미터에는 this객체, 두 번째 파라미터에는 함수에 전달할 배열 사용.

this를 지정하지 않으려면 null을 쓰고, 이는 window를 가리키게 된다.

let array = [2, 6, 9, 3, 4];
let num = Math.max.apply(null, array);

console.log(num); //9

 

 

2. 스프레드 연산자(...) 사용

 

스프레드 연산자는 ES6에서 나온 문법이며, 배열, 문자열 등의 객체 안의 요소를 하나하나 분리해주는 연산자라고 한다.

스프레드 연산자를 사용하면 배열이 하나의 묶음에서 각각의 요소로 분리가 되므로 Math.max에도 활용 가능하다.

let array = [2, 6, 9, 3, 4];
let num = Math.max(...array);

console.log(num); //9

아래 글이 스프레드 연산자에 대해 잘 설명되어있어 첨부한다.

https://paperblock.tistory.com/62

 

[ES6] Spread Operator (스프레드 연산자)

ES6에서는 '...'와 같이 다소 특이한 형태의 문법이 추가되었습니다. 점 3개가 연달아 붙어있는 이 표시는 Spread Opertor(스프레드 오퍼레이터, 스프레드 연산자, 전개 구문, 펼침 연산자...)를 나타내

paperblock.tistory.com

 

 

참고로 Function.prototype.apply와 스프레드 연산자는 아주 큰 배열이 들어왔을 때 오류가 나니 주의해야 한다고 한다.

 

 


참고자료:

https://rutgo-letsgo.tistory.com/96

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/max

https://hianna.tistory.com/487