์ƒˆ์†Œ์‹

๐ŸŽ/Javascript

[Javascript] ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’ · ์ตœ์†Ÿ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ

  • -

1๏ธโƒฃ Math ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ

[Javascript] Math ๋ฉ”์„œ๋“œ (+์†์„ฑ)

๊ทธ๋Ÿฌ๋‚˜ ๋‹จ์ˆœํ•œ Math.max()๋‚˜ Math.min()์€ ์ธ์ž๋กœ ์ˆซ์ž ๊ฐ’์„ ์ฃผ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’ · ์ตœ์†Ÿ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ์—” ์‚ฌ์šฉ์ด ์–ด๋ ต๋‹ค

 

* ๋ฐฐ์—ด ๋‚ด์— ๋น„๊ต ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ’์ด NaN๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

* ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ƒ๋žต๋  ๊ฒฝ์šฐ -Infinity๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 ** ํฐ ๋ฐฐ์—ด (~10^7 elements)์ด ์ฃผ์–ด์งˆ ๊ฒฝ์šฐ, RangeError : Maximum call stack size exceeded ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ฒŒ ๋œ๋‹ค.

 

1๏ธโƒฃ-1๏ธโƒฃ spread ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

spread ์—ฐ์‚ฐ์ž๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค - ํŽผ์น  ์ˆ˜ ์žˆ๋‹ค.

โžก๏ธ Math ๋ฉ”์„œ๋“œ์˜ ์ธ์ž๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ

*ECMAScript 6 ์ด์ „์ผ ๊ฒฝ์šฐ spread(...)์—ฐ์‚ฐ์ž๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.

var arr = [3, 1, 2, 5, 4];

var maxValue = Math.max(...arr); //maxValue : 5
var minValue = Math.min(...arr); //minValue : 1

 

1๏ธโƒฃ-2๏ธโƒฃ Function.prototype.apply() ์‚ฌ์šฉ

apply ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ

์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š”  null (this์— ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ์ฒด), ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฐฐ์—ด์„ ์ „๋‹ฌํ•˜๋ฉด ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๋”๋ณด๊ธฐ
function.apply(thisArg, [argsArray])

โ‘  [argsArray] ๋ฐฐ์—ด์˜ ์›์†Œ ๊ฐ’๋“ค์„ ๊ฐ€์ ธ์˜จ๋‹ค

โ‘ก ๊ฐ€์ ธ์˜จ ์›์†Œ์˜ ๊ฐ’๋“ค์„ thisArg๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” function ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋ฐ›์•„ ์‹คํ–‰์‹œํ‚จ๋‹ค

 

์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ null๋กœ ์ „๋‹ฌํ•˜๋ฉด context๋Š” window ๊ฐ์ฒด๊ฐ€ ๋œ๋‹ค.

โžก๏ธ ๋‘ ๋ฒˆ์งธ ์ธ์ž์˜ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ์˜ ์ธ์ž๋กœ ๋ณด๋‚ด ์‹คํ–‰ํ•œ๋‹ค.

var arr = [3, 1, 2, 5, 4];

var maxValue = Math.max.apply(null, arr); //maxValue : 5
var minValue = Math.min.apply(null, arr); //minValue : 1

 

 

2๏ธโƒฃ ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ

//์ตœ๋Œ“๊ฐ’
function findMaxValue(arr) {

	let max = arr[0];
    
    for (let i of arr) {
    	if (i > max)
        	max = i;
	}
    
    return max;
}

//์ตœ์†Ÿ๊ฐ’
function findMinValue(arr) {

	let min = arr[0];
    
    for (let i of arr) {
    	if (i < min)
        	min = i;
	}
    
    return min;
}

 

 

3๏ธโƒฃ sort ํ•จ์ˆ˜ ์‚ฌ์šฉ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ •๋ ฌ์„ ํ•  ๊ฒฝ์šฐ ๋ฌธ์ž์—ด ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ

[Javascript] ๋ฐฐ์—ด ์ •๋ ฌํ•˜๊ธฐ (์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ, ๋ฌธ์ž์—ด, ๊ฐ์ฒด)

var arr = [3, 1, 2, 5, 4];

var max = arr.slice(0).sort((a, b) => b - a)[0];
var min = arr.slice(0).sort((a, b) => a - b)[0];

 

 

4๏ธโƒฃ reduce ํ•จ์ˆ˜ ์‚ฌ์šฉ

var arr = [3, 1, 2, 5, 4];

//์ตœ๋Œ€๊ฐ’
var max = array.reduce( function (pre, cur) {
	return pre > cur ? pre : cur;
});

//์ตœ์†Œ๊ฐ’
var min = array.reduce( function (pre, cur) {
	return pre > cur ? cur : pre;
});

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ ๋ณต์‚ฌ ์™„๋ฃŒ! ๐ŸŒˆ

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐโค๏ธโ€๐Ÿ”ฅ๋ถ€ํƒ ๋“œ๋ ค์š” (โˆ—โ›โŒ„โ›โˆ—)