reverse string

Problem

λ¬Έμžμ—΄μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, 이λ₯Ό μ—­μˆœμœΌλ‘œ 좜λ ₯ν•˜κΈ°.

Solution

  1. reverse() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜κΈ°

function reverseString(str) {
  return str.split('').reverse().join('');
}
  1. for loop μ‚¬μš©ν•˜κΈ°

function reverseString(str) {
  let reversed = '';
  
  for(char of str) {
    reversed = char + reversed;
  }
  return reversed;
}
  1. reduce() λ©”μ„œλ“œ μ‚¬μš©ν•˜κΈ°

function reverseString(str) {
  return str.split('').reduce((reversed, char) => char + reversed, '');
}

Discussion

reverse() λ©”μ„œλ“œ μ‚¬μš©ν•˜κΈ°

λ¬Έμžμ—΄μ„ split() λ©”μ„œλ“œλ‘œ λ°°μ—΄λ‘œ λ§Œλ“€κ³ , reverse() λ©”μ„œλ“œλ‘œ μ—°μˆœμœΌλ‘œ λ§Œλ“  ν›„ join() λ©”μ„œλ“œλ‘œ λ‹€μ‹œ λ¬Έμžμ—΄λ‘œ λ§Œλ“€μ–΄ λ°˜ν™˜ν•œλ‹€. λ¬Έμžμ—΄μ„ split()을 μ‚¬μš©ν•΄ λ°°μ—΄λ‘œ λ§Œλ“€ 수 μžˆλ‹€λŠ” 점을 μ•Œκ²Œ λ˜μ—ˆλ‹€. κ°„λ‹¨ν•˜μ§€λ§Œ λ¬Έμžμ—΄μ„ λ°°μ—΄λ‘œ λ§Œλ“  ν›„ λ‹€μ‹œ λ¬Έμžμ—΄λ‘œ λ§Œλ“œλŠ” 과정이 λΉ„νš¨μœ¨μ !

for loop μ‚¬μš©ν•˜κΈ°

for문을 μ‚¬μš©ν•΄ λ¬Έμžμ—΄μ„ μƒˆλ‘œμš΄ λ¬Έμžμ—΄μ— μ—­μˆœμœΌλ‘œ μ €μž₯ν•œλ‹€. 기쑴에 많이 μ‚¬μš©ν•˜λ˜ 방식인 for(let i = 0; i < str.length; i++) ꡬ문이 μ•„λ‹Œ for(char of str) ꡬ문을 μ‚¬μš©ν•΄ κ°„λ‹¨ν•˜κ²Œ λ¬Έμžμ—΄μ„ μˆœνšŒν•  수 μžˆλ‹€. (ES6μ—μ„œ μΆ”κ°€λœ κΈ°λŠ₯)

reduce() λ©”μ„œλ“œ μ‚¬μš©ν•˜κΈ°

아직 μ΅μˆ™ν•˜μ§€ μ•Šμ€ reduce() λ©”μ„œλ“œ...
reduce() λ©”μ„œλ“œλŠ” λ°°μ—΄μ˜ 각 μš”μ†Œμ— λŒ€ν•΄ 주어진 ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜κ³  ν•˜λ‚˜μ˜ 결과값을 λ°˜ν™˜ν•œλ‹€.
μ΄ˆκΈ°κ°’μ„ λΉˆλ¬Έμžμ—΄λ‘œ μ„€μ •ν•˜κ³ , λ°°μ—΄μ˜ 각 μš”μ†Œλ₯Ό μˆœνšŒν•˜λ©° λ¬Έμžμ—΄μ„ μ—­μˆœμœΌλ‘œ λ§Œλ“€μ–΄ λ°˜ν™˜ν•œλ‹€.

Last updated