Skip to content

Latest commit

Β 

History

History
60 lines (52 loc) Β· 1.65 KB

Array method.md

File metadata and controls

60 lines (52 loc) Β· 1.65 KB

Array Method

Array λ©”μ„œλ“œ 쀑 μžμ£Όμ“°μ΄λŠ” 4κ°€μ§€ λ©”μ„œλ“œμ˜ μž‘λ™μ›λ¦¬λ₯Ό μ •λ¦¬ν•΄λ³΄μ•˜λ‹€.

forEach λ©”μ„œλ“œ μž‘λ™μ›λ¦¬

Array κ°μ²΄μ—μ„œλ§Œ μ‚¬μš©κ°€λŠ₯ν•œ 반볡문

function forEach(predicate, thisArg) {
  for(let i = 0; i < arr.length; i++) {
    predicate(arr[i], i);
  }
}

// predicate : μ½œλ°±ν•¨μˆ˜λ₯Όλ°›λŠ”λ‹€
// thisArg : μ½œλ°±ν•¨μˆ˜ λ‚΄μ—μ„œ this둜 전달받을 인자λ₯Όλ°›λŠ”λ‹€(μƒλž΅κ°€λŠ₯)

map λ©”μ„œλ“œ μž‘λ™μ›λ¦¬

원본 λ°°μ—΄μ˜ μš”μ†Œλ₯Ό ν•˜λ‚˜ν•˜λ‚˜ νƒμƒ‰ν•΄κ°€λ©΄μ„œ μƒˆλ‘œμš΄ 배열을 μƒμ„±ν•˜μ—¬ 리턴

function map(predicate, thisArg) {
  let list = [];
  for(let i = 0; i < arr.length; i++) {
    list.push(predicate(arr[i], i));
  }
  return list;
}

// predicate : μ½œλ°±ν•¨μˆ˜λ₯Όλ°›λŠ”λ‹€
// thisArg : μ½œλ°±ν•¨μˆ˜ λ‚΄μ—μ„œ this둜 전달받을 인자λ₯Όλ°›λŠ”λ‹€(μƒλž΅κ°€λŠ₯)

filter λ©”μ„œλ“œ μž‘λ™μ›λ¦¬

원본 λ°°μ—΄μ—μ„œ μ£Όμ–΄μ§„ ν•¨μˆ˜μ˜ ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜λŠ” λͺ¨λ“  μš”μ†Œλ₯Ό λͺ¨μ•„ μƒˆλ‘œμš΄ 배열을 μƒμ„±ν•˜μ—¬ 리턴

function filter(predicate, thisArg) {
  let list = [];
  for(let i = 0; i < arr.length; i++) {
    if(predicate(arr[i], i)) list.push(arr[i]);
  }
  return list;
}

// predicate : μ½œλ°±ν•¨μˆ˜λ₯Όλ°›λŠ”λ‹€
// thisArg : μ½œλ°±ν•¨μˆ˜ λ‚΄μ—μ„œ this둜 전달받을 인자λ₯Όλ°›λŠ”λ‹€(μƒλž΅κ°€λŠ₯)

reduce λ©”μ„œλ“œ μž‘λ™μ›λ¦¬

λ°°μ—΄μ˜ 각 μš”μ†Œμ— λŒ€ν•΄ μ½œλ°±ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜μ—¬ 단 1개의 좜λ ₯ κ²°κ³Όλ₯Ό 리턴

function reduce(predicate, val) {
  let result = val;
  for(let i = 0; i < arr.length; i++) {
    result = predicate(result, arr[i]);
  }
  return result;
}

// predicate : μ½œλ°±ν•¨μˆ˜λ₯Όλ°›λŠ”λ‹€
// val : μ΄ˆκΈ°ν™”κ°’