Backend/Ruby

Ruby의 map vs each

Seyun(Marco) 2021. 6. 26. 09:30
728x90

Ruby의 map vs each

image

🧐 두 개의 κ°€μž₯ 큰 차이점

  • 두 개의 κ°€μž₯ 큰 차이점은 μƒˆλ‘œμš΄ λ°°μ—΄ λ°˜ν™˜ μ—¬λΆ€μž…λ‹ˆλ‹€.
  • map은 μƒˆλ‘œμš΄ 배열을 λ°˜ν™˜ν•˜κ³ , eachλŠ” μƒˆλ‘œμš΄ 배열을 λ°˜ν™˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • κ°„λ‹¨ν•œ 예제λ₯Ό 톡해 μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€

1️⃣ map

names  = [ "Dan", "Stella", "Elly" ]
upcase_names = names.map { |name| name.upcase }

puts names // [ "Dan", "Stella", "Elly" ]
puts upcase_names // [ "DAN", "STELLA", "ELLY" ]
  • map은 μƒˆλ‘œμš΄ 배열을 λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ— λ³€ν™˜λœ 값이 λ‚˜μ˜€λŠ”κ±Έ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 즉, μ›λž˜ 배열을 λ³€ν™˜ν•˜μ§€ μ•ŠλŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€.
  • μ›λž˜ 배열도 같이 λ³€κ²½ν•˜κ³  μ‹Άλ‹€λ©΄ map! 을 μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.
names  = [ "Dan", "Stella", "Elly"]
names.map! { |name| name.upcase }

puts names // [ "DAN", "STELLA", "ELLY" ]

2️⃣ each

names  = [ "Dan", "Stella", "Elly" ]
upcase_names = names.each { |name| name.upcase }

puts names // [ "Dan", "Stella", "Elly" ]
puts upcase_names // [ "Dan", "Stella", "Elly" ]
  • eachλŠ” λ°˜ν™˜ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ‘˜μ΄ λ™μΌν•œ 값이 λ‚˜μ˜€λŠ”κ±Έ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

3️⃣ collect

  • mapκ³Ό λ™μΌν•œ κΈ°λŠ₯을 ν•˜λŠ” collect도 μžˆμŠ΅λ‹ˆλ‹€.
names  = [ "Dan", "Stella", "Elly" ]
upcase_names = names.collect { |name| name.upcase }

puts names // [ "Dan", "Stella", "Elly" ]
puts upcase_names // [ "DAN", "STELLA", "ELLY" ]
728x90
728x90