[JS] forEach

지후맨·2021λ…„ 8μ›” 30일
0

section 1 [JS]

λͺ©λ‘ 보기
3/6
post-thumbnail

πŸ“Œ forEach

forEach() λ©”μ„œλ“œλŠ” 배열에 ν™œμš©μ΄ κ°€λŠ₯ν•œ λ©”μ„œλ“œλ‘œ, νŒŒλΌλ―Έν„°λ‘œ 주어진 ν•¨μˆ˜λ₯Ό λ°°μ—΄ μš”μ†Œ 각각에 λŒ€ν•΄ μ‹€ν–‰ν•˜λŠ” λ©”μ„œλ“œμ΄λ‹€.
map() λ©”μ„œλ“œμ™€ 거의 λΉ„μŠ·ν•˜μ§€λ§Œ 차이점은 λ”°λ‘œ return ν•˜λŠ” 값이 μ—†λ‹€λŠ” 점이닀.


문법)

const myArr = [1, 2, 3];

const newMyArr = myArr.forEach((currentElement, index, array) => {
  console.log(`μš”μ†Œ: ${currentElement}`);
  console.log(`index: ${index}`);
  console.log(array);
});

  //μš”μ†Œ: 1, index: 0, (3) [1, 2, 3]
  //μš”μ†Œ: 2, index: 1, (3) [1, 2, 3]
  //μš”μ†Œ: 3, index: 2, (3) [1, 2, 3]
 
console.log(newMyArr); //undefined

forEach λ©”μ„œλ“œλ„ mapλ©”μ„œλ“œμ™€ λ™μΌν•˜κ²Œ νŒŒλΌλ―Έν„°λ‘œ 콜백 ν•¨μˆ˜λ₯Ό λ°›λŠ”λ°, κ·Έ 콜백 ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°λŠ” μš”μ†Œ, index 그리고 ν˜„μž¬ mapλ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œ 배열이닀.

forEach λ©”μ„œλ“œλ„ μ„Έλ²ˆμ§Έ 배열은 잘 μ‚¬μš©λ˜μ§€ μ•Šκ³  일반적으둜 첫 번째 μš”μ†Œμ™€, 두 번째 indexκ°€ 많이 μ‚¬μš©λœλ‹€.

μ•žμ—μ„œλ„ μ–ΈκΈ‰ν–ˆμ§€λ§Œ, map λ©”μ„œλ“œμ™€ 차이점은 λ”°λ‘œ 콜백 ν•¨μˆ˜κ°€ return ν•˜λŠ” 값을 λ”°λ‘œ λͺ¨μ•„μ„œ μ–΄λ–€ 처리λ₯Ό ν•˜λŠ” 과정이 μ—†κΈ° λ•Œλ¬Έμ—, λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œ μ½”λ“œλ₯Ό ν•¨μˆ˜μ— ν• λ‹Ήν•˜λ©΄ undefinedκ°€ ν• λ‹Ήλœλ‹€.

κ·Έλž˜μ„œ forEach λ©”μ„œλ“œλŠ” λ³€μˆ˜μ— ν• λ‹Ήν•˜κΈ° λ³΄λ‹€λŠ” λ°˜λ³΅λ¬Έμ΄λ‚˜ 쑰건문과 같이 κ·Έλƒ₯ λ°”λ‘œ ν˜ΈμΆœλ˜λŠ” 것이 μΌλ°˜μ μ΄λ‹€.

const myArr = ['강아지', '고양이', 'ν–„μŠ€ν„°', '거뢁이', 'μ΄κ΅¬μ•„λ‚˜'];

myArr.forEach((el, i) => {
  console.log(i);
  console.log(el);
  if(el === '고양이') {
    myArr.shift();
  }
})

console.log(myArr); // ['고양이', 'ν–„μŠ€ν„°', '거뢁이', 'μ΄κ΅¬μ•„λ‚˜']

그리고 forEach λ©”μ„œλ“œμ˜ μ½œλ°±ν•¨μˆ˜ λ‚΄μ—μ„œ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œ 배열을 λ³€κ²½ν•˜λŠ” 것이 κ°€λŠ₯ν•œλ°,
μœ„ μ½”λ“œμ²˜λŸΌ νŠΉμ •μƒν™©μ—μ„œ μš”μ†Œ ν•˜λ‚˜λ₯Ό μ‚­μ œν•΄λ²„λ¦¬κ²Œ 되면 κ·Έλ‹€μŒ μš”μ†Œλ₯Ό 찾을 λ•Œ, λ³€κ²½λœ λ°°μ—΄μ—μ„œ ν•΄λ‹Ήν•˜λŠ” indexλ₯Ό μ°ΎκΈ° λ•Œλ¬Έμ— 이 μ½”λ“œμ˜ μ‹€ν–‰κ²°κ³Όλ₯Ό 보면 고양이 λ‹€μŒμ— 거뢁이가 좜λ ₯λ˜λŠ”λ°, λ©”μ„œλ“œκ°€ μ‹€ν–‰λœ μ΄ν›„μ˜ myArrλ₯Ό μ‚΄νŽ΄λ³΄λ©΄, 강아지가 λ°°μ—΄μ—μ„œ μ‚­μ œλœ κ±Έ 확인할 수 μžˆλ‹€.


μ°Έκ³ )
forEach의 μƒμœ„ν˜Έν™˜μ΄λΌκ³  ν•΄μ„œ λ°°μ—΄μ˜ μš”μ†Œλ“€μ„ μˆœνšŒν•  λ•Œ κ·Έλƒ₯ 무쑰건 map λ©”μ„œλ“œλ₯Ό ν™œμš©ν•˜λŠ” 경우λ₯Ό λ³Έ 적이 μžˆμ—ˆλŠ”λ°,
κ°œμΈμ μœΌλ‘œλŠ” return κ°’μœΌλ‘œ μƒˆλ‘œμš΄ 배열이 ν•„μš”ν•˜μ§€ μ•ŠλŠ” 경우라면 forEach λ©”μ„œλ“œλ₯Ό ν™œμš©ν•˜λŠ” 것이 μ˜³λ‹€κ³  μƒκ°ν•œλ‹€.

profile
ghooman's area

0개의 λŒ“κΈ€