๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+37] ๋ฐฐ์—ด์˜ for๋ฌธ, ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ, ์ฝœ๋ฐฑํ•จ์ˆ˜

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 11. 13.

 

 

๊ตญ๋น„์ง€์› D+37

-  ๋ฐฐ์—ด์˜ for๋ฌธ, ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ, ์ฝœ๋ฐฑํ•จ์ˆ˜ -

 


 

๋ฐฐ์—ด์˜ for๋ฌธ

const arr = [11, 22, 33, 44, 55];

for(let i = 0; i < arr.length; i++)
{
	console.log(i, arr[i]);
}

// 0 11
// 1 22
// 2 33
// 3 44
// 4 55

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ for๋ฌธ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋Š” for๋ฌธ๋„ ์กด์žฌํ•˜์ง€๋งŒ ๊ทธ๋ฐ–์—๋„ 2๊ฐ€์ง€๊ฐ€ ๋”์žˆ๋‹ค.

 

• for in ๋ฐ˜๋ณต๋ฌธ

- ๋ฐฐ์—ด์„ ํ•œ๋ฐ”ํ€ด ๋‹ค ๋„๋Š” ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์˜ index ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

const arr = [11, 22, 33, 44, 55];

for(const index in arr)
{
	console.log(index);
}

// 0
// 1
// 2
// 3
// 4

 

• for of ๋ฐ˜๋ณต๋ฌธ

- ๋ฐฐ์—ด์„ ํ•œ๋ฐ”ํ€ด ๋‹ค ๋„๋Š” ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์˜ element ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

const arr = [11, 22, 33, 44, 55];

for(const val in arr)
{
	console.log(val);
}

// 11
// 22
// 33
// 44
// 55

 

for in๊ณผ for of๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์•Œ์•„์•ผํ•˜๋Š” ๊ฒƒ์€ ๊ธฐ์กด์— ์šฐ๋ฆฌ๋Š” for๋ฅผ ์‚ฌ์šฉํ• ๋•Œ let์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ for in๊ณผ for of๊ฐ™์€ ๊ฒฝ์šฐ๋Š” const๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋ฐ ์ด์œ ๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆด๋•Œ๋งˆ๋‹ค ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งค๋ฒˆ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

 


ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ

• ํ•จ์ˆ˜์˜ ์ข…๋ฅ˜

- ์„ ์–ธํ•จ์ˆ˜ : ES5๋ฐฉ์‹, ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ์žˆ์Œ.

- ์ต๋ช…ํ•จ์ˆ˜ : ES6๋ฐฉ์‹, ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ์—†์Œ.

// ์„ ์–ธํ•จ์ˆ˜
// ES5 ๋ฐฉ์‹
function myfunc(a, b)
{
	let k = a + b;
	return k;
}

// ์ต๋ช…ํ•จ์ˆ˜
// ES6 ๋ฐฉ์‹
const myfunc2 = function(a, b)
{
	let k = a + b;
	return k;
}

console.log(myfunc(10, 20));
console.log(myfunc2(4, 9));

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ํ•จ์ˆ˜๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ์ต๋ช…ํ•จ์ˆ˜์™€ ์„ ์–ธํ•จ์ˆ˜์ด๋‹ค.

 

์„ ์–ธํ•จ์ˆ˜๋Š” ๊ธฐ์กด ES5์—์„œ ์‚ฌ์šฉ๋˜๋˜ ๊ฒƒ์œผ๋กœ ํ•จ์ˆ˜์•ž์— ๋ฐ”๋กœ ํ•จ์ˆ˜๋ช…์„ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ์— "()"๋ฅผ ๋ถ™์—ฌ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜๋ฉฐ, ์ด๋•Œ ํ•จ์ˆ˜๋ช…์€ ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฐธ์กฐ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

์ต๋ช…ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์— ํ•จ์ˆ˜๋ช…์„ ๋ถ™์—ฌ์ฃผ์ง€ ์•Š์„ ๋ฟ ๋ณ€์ˆ˜์— ๋”ฐ๋กœ ๋‹ด์•„์ฃผ๋Š” ํ˜•ํƒœ๋กœ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•ด๋‹น ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ต๋ช…ํ•จ์ˆ˜์˜ ์ฐธ์กฐ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์„ ์–ธํ•จ์ˆ˜์™€ ์ต๋ช…ํ•จ์ˆ˜์™€์˜ ๋งค์ปค๋‹ˆ์ฆ˜์€ ์ผ์น˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

• ๊ฐ€๋ณ€ ํŒŒ๋ผ๋ฏธํ„ฐ

function func(...items)
{
	console.log(items);
}

func(1, 2, 3);		// items = [1, 2, 3];๋กœ ๋ฐ›๋Š”๋‹ค.
func(1, 2, 3, 4, 5);	// items = [1, 2, 3, 4, 5];๋กœ ๋ฐ›๋Š”๋‹ค.

- ๊ฐ€๋ณ€ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ฐ€๋ณ€์ ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ์•ˆ ๋ณ€์ˆ˜์•ˆ์— "..."์„ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

- ๋งŒ์•ฝ function func(...items){...}๊ฐ€ ์žˆ์„๋•Œ items๋Š” ๋ช‡๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์™€๋„ items๋ผ๋Š” ๋ฐฐ์—ด์•ˆ์— ๋‹ด์•„๋ฒ„๋ฆฌ๋ฉฐ func์•ˆ์˜ ํ•จ์ˆ˜๋„ ๋ฐฐ์—ดํ˜•์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•ด๋ฒ„๋ฆฐ๋‹ค.

 

- ๊ฐ€๋ณ€ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ผ๋ฐ˜ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์กฐํ•ฉ

function func(a, b, ...items)
{
	console.log(a);
    console.log(b);
    console.log(items);
}

func(1, 2);		// a = 1, b = 2, items = []
func(1, 2, 3);		// a = 1, b = 2, items = [3]
func(1, 2, 3, 4, 5);	// a = 1, b = 2, items = [3, 4, 5]

- ๊ฐ€๋ณ€ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ผ๋ฐ˜ ํŒŒ๋ผ๋ฏธํ„ฐ์™€๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ๊ฐ€๋ณ€ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋’ค์— ์œ„์น˜ํ•ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

• ์ „๊ฐœ ์—ฐ์‚ฐ์ž

const dummy = function (a, b, c) 
{
	console.log(a);
    console.log(b);
    console.log(c);
}

const ar = [1, 2, 3];

// ๋‘ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ฐฉ์‹์€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
dummy(ar[0], ar[1], ar[2]);
dummy(...ar);

- ๋ณต์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ•จ์ˆ˜์— ๋ฐฐ์—ด์„ ์ „๋‹ฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

- ํ˜ธ์ถœ์‹œ "...๋ฐฐ์—ด๋ช…" ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•œ๋‹ค.

 


์ฝœ๋ฐฑํ•จ์ˆ˜

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๊ณผ์ •์—์„œ ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ์˜ํ•ด ์ธ์ž๋กœ ๋ฐ›์€ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋ฆฌํ„ด๋  ์ˆ˜๋„ ์žˆ๋‹ค.

์ฆ‰, ํ•จ์ˆ˜๋ฅผ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.

 

=> ํ•จ์ˆ˜์˜ ๋ ˆํผ๋Ÿฐ์Šค ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜์—ฌ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜

 

• forEach

- ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•œ๋‹ค.

const numbers = [11, 22, 33, 44, 55];

numbers.forEach((value, index) => { console.log(index, value) });

// 0 11
// 1 22
// 2 33
// 3 44
// 4 55

 

• map

- ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const numbers = [10, 20, 30, 40, 50];

const newNumbers = numbers.map((value) => value + 5);

console.log(newNumbers);

// [15, 25, 35, 45, 55]

 

• filter

- ์ฃผ์–ด์ง„ ํ•จ์ˆ˜์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const numbers = [1, 2, 3, 4, 5];

const newNumbers = numbers.filter((value)=> { if(value < 4) { return true; } });

console.log(newNumbers);

// [1, 2, 3]

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€