SW 개발/Vanilla JS

[JavaScript] λ°°μ—΄ μ›μ†Œμ™€ 인덱슀λ₯Ό 반볡적으둜 ν™œμš©ν•˜λŠ” ν•¨μˆ˜(forEach, map ν•¨μˆ˜)

DATA101 2021. 12. 2. 20:04
728x90
λ°˜μ‘ν˜•

πŸ’‘ λͺ©ν‘œ

JavaScriptμ—μ„œ forEach ν•¨μˆ˜μ™€ map ν•¨μˆ˜μ˜ ν™œμš©λ²•μ— λŒ€ν•΄ ν•™μŠ΅ν•œλ‹€.

1.  forEach ν•¨μˆ˜

ν•¨μˆ˜ μ›ν˜•(κΈ°λ³Έ)

λ°°μ—΄.forEach(μ½œλ°±ν•¨μˆ˜(κ°’, 인덱슀, λ°°μ—΄ μžμ‹ ));

 

forEach ν•¨μˆ˜λŠ” μ „λ‹¬μΈμžκ°€ λ°°μ—΄ λ‚΄ μ›μ†Œ κ°’, 인덱슀, λ°°μ—΄ μžμ‹ μΈ μ½œλ°±ν•¨μˆ˜λ₯Ό λ°›λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 즉, forEach ν•¨μˆ˜λŠ” for 반볡문처럼 첫 번째 μ›μ†ŒλΆ€ν„° λ§ˆμ§€λ§‰ μ›μ†ŒκΉŒμ§€ μ°¨λ‘€λŒ€λ‘œ λ°°μ—΄μ—μ„œ κΊΌλ‚΄ μ½œλ°±ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. map ν•¨μˆ˜μ™€ λ‹€λ₯΄κ²Œ 리턴 값이 μ—†λ‹€λŠ” νŠΉμ§•μ΄ μžˆμŠ΅λ‹ˆλ‹€. 예제 μ½”λ“œμ™€ ν•¨κ»˜ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

예제1

let arr1 = [100, 200, 300];
arr1.forEach( (v, idx, arr) => {
    console.log(`${idx} 인덱슀의 κ°’: ${v}`);
    console.log(`λ°°μ—΄ μžμ‹ : ${arr}`);
    console.log('------------');
});

μ‹€ν–‰ κ²°κ³Ό1

0 인덱슀의 κ°’: 100
λ°°μ—΄ μžμ‹ : 100,200,300
------------
1 인덱슀의 κ°’: 200
λ°°μ—΄ μžμ‹ : 100,200,300
------------
2 인덱슀의 κ°’: 300
λ°°μ—΄ μžμ‹ : 100,200,300
------------

0번 μΈλ±μŠ€λΆ€ν„° λ§ˆμ§€λ§‰ μΈλ±μŠ€κΉŒμ§€ ν•˜λ‚˜μ˜ μ›μ†Œμ”© 전달받아 ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜λŠ” λ‘œμ§μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

예제2

let arr1 = [100, 200, 300];
arr1.forEach( (element) => {
    console.log(`κ°’: ${element}`);
    console.log('------------');
});

μ›μ†Œλ§Œ μ „λ‹¬μΈμžλ‘œ 받을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μ‹€ν–‰ κ²°κ³Ό2

100
200
300

2.  map ν•¨μˆ˜

ν•¨μˆ˜ μ›ν˜•

λ°°μ—΄.map(μ½œλ°±ν•¨μˆ˜(κ°’, 인덱슀, λ°°μ—΄ μžμ‹ ));

 

map ν•¨μˆ˜λŠ” μ „λ‹¬μΈμžκ°€ λ°°μ—΄ λ‚΄ μ›μ†Œ κ°’, μΈλ±μŠ€, λ°°μ—΄ μžμ‹ μΈ μ½œλ°±ν•¨μˆ˜λ₯Ό λ°›λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 즉, map ν•¨μˆ˜λŠ” for 반볡문처럼 첫 번째 μ›μ†ŒλΆ€ν„° λ§ˆμ§€λ§‰ μ›μ†ŒκΉŒμ§€ μ°¨λ‘€λŒ€λ‘œ λ°°μ—΄μ—μ„œ κΊΌλ‚΄ μ½œλ°±ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. map ν•¨μˆ˜λŠ” λ°˜ν™˜ 값이 μžˆλ‹€λŠ” 점이 forEach ν•¨μˆ˜μ™€μ˜ μ°¨μ΄μ μž…λ‹ˆλ‹€.

예제1

let arr2 = [10, 20, 30];
let arr3 = arr2.map( (value, index) => value*index;);
console.log(arr3);

 

λ°°μ—΄μ˜ 각 μ›μ†Œ κ°’κ³Ό 인덱슀λ₯Ό κ³±ν•œ 결괏값을 λ¦¬ν„΄ν•˜λŠ” κ΅¬λ¬Έμž…λ‹ˆλ‹€.

μ‹€ν–‰ κ²°κ³Ό1

[ 0, 20, 60 ]

예제2

let arr4 = [2, 3, 4];
let arr5 = arr4.map( number => number**2;);
console.log(arr5);

μ‹€ν–‰ κ²°κ³Ό2

[ 4, 6, 9 ]

 

ν¬μŠ€νŒ… λ‚΄μš©μ— 였λ₯˜κ°€ μžˆλ‹€λ©΄ μ•„λž˜μ— λŒ“κΈ€ λ‚¨κ²¨μ£Όμ„Έμš”!

그럼 μ˜€λŠ˜λ„ 즐겁고 ν–‰λ³΅ν•œ ν•˜λ£¨ λ³΄λ‚΄μ‹œκΈΈ λ°”λžλ‹ˆλ‹€.

κ³ λ§™μŠ΅λ‹ˆλ‹€ :)

 

 

728x90
λ°˜μ‘ν˜•