정해진 매개변수의 함수가 아니라 가변적인 인수를 받아서 처리할 경우 받은 가변 인수를 가지고 최대값을 가져오는 예제 코드이다.
가변 인수를 가져올 때는 함수안에서 arguments 를 사용하면 된다.
ES6 부터는 rest 파라미터라고 fn(...파라미터명) 이런식으로 사용하면 된다.
function fn() { let arr = []; for (let i = 0; i < arguments.length; i++) { arr.push(arguments[i]); } console.log(arr) //return Math.max.apply(null, arr) //return Math.max(...arr) //return arr.reduce((previous, current) => { return previous > current ? previous:current;}) //return arr.sort( (a,b)=>{ return b-a } )[0]; } console.log(fn(1, 3, 2));
주석 처리한 총 4가지 방법이 있다.
Math.max.apply 는 ES6 이전 방식이고 Math.max 는 ES6 스프레드 연산자를 사용한다.
나머지는 reduce() 와 sort()를 사용한다.