็„ก์ œ

Array Transformation (๋ฐ์ดํ„ฐ ๋ณ€ํ˜•) ๋ณธ๋ฌธ

<script>

Array Transformation (๋ฐ์ดํ„ฐ ๋ณ€ํ˜•)

yo-u-loo 2026. 5. 28. 15:36

 

๐ŸŸจ Array Transformation

๋ฐฐ์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ•ต์‹ฌ ๋ฉ”์„œ๋“œ๋Š” map๊ณผ filter์ด๋‹ค.

๋‘ ๋ฉ”์„œ๋“œ์˜ ๊ณตํ†ต์ ์€ ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ€๊ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐ŸŸฃ map (๋ณ€ํ™˜)

๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์–ด ํŠน์ • ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ ๋’ค, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๋ฉ”์„œ๋“œ.

const result = arr.map(x => x * 2);
  • ํŠน์ง•: ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ์—ญํ• : “๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•ด์„œ ์ƒˆ๋กœ์šด ํ˜•ํƒœ๋กœ ๋งŒ๋“ค๊ธฐ”
  • ๊ตฌ์กฐ: ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ณ€ํ™˜ํ•ด ์›๋ณธ๊ณผ ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ.

๐Ÿ‘‰ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ํ•ญ์ƒ ์›๋ณธ ๋ฐฐ์—ด๊ณผ ๋™์ผํ•˜๋‹ค.

 
 

๐ŸŸฃ filter (์„ ๋ณ„)

๋ฐฐ์—ด์˜ ์š”์†Œ ์ค‘ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋งŒ ๊ณจ๋ผ๋‚ด์–ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๋ฉ”์„œ๋“œ.

const result = arr.filter(x => x > 10);
  • ํŠน์ง•: ์กฐ๊ฑด์„ ํ†ต๊ณผํ•œ ์š”์†Œ๋งŒ ๋‚จ๊ธด๋‹ค.
  • ์—ญํ• : “์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถ”๋ฆฌ๊ธฐ”
  • ๊ตฌ์กฐ: ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ truthy๋ฅผ ๋ฐ˜ํ™˜ํ•œ ์š”์†Œ๋งŒ ๋‚จ๊ธด๋‹ค.

๐Ÿ‘‰ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ์›๋ณธ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ’ฅ map + filter ์กฐํ•ฉ (๋ฉ”์„œ๋“œ ์ฒด์ด๋‹) ๐Ÿ’ฅ

๋‘ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋„ ํ•œ ๋ฒˆ์— ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

const result = products
  .filter(p => p.price >= 100000)
  .map(p => p.name);
  • ๋จผ์ € filter๋กœ ์กฐ๊ฑด์„ ๊ฑธ๋Ÿฌ๋‚ธ ๋’ค, map์œผ๋กœ ํ•„์š”ํ•œ ๊ฐ’๋งŒ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • filter → map ์ˆœ์„œ๊ฐ€ ์ผ๋ฐ˜์ ์ด๋ฉฐ, map์„ ๋จผ์ € ํ•˜๋ฉด ๋ถˆํ•„์š”ํ•œ ๋ณ€ํ™˜๊นŒ์ง€ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

๐Ÿ“‹ map vs filter ํ•œ๋ˆˆ์— ๋น„๊ต ๐Ÿ“‹

๊ตฌ๋ถ„ map() filter()
๋ชฉ์  ์š”์†Œ๋ฅผ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ/๋ณ€ํ˜• ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ๋งŒ ์ถ”์ถœ/์„ ํƒ
๊ฒฐ๊ณผ ๋ฐฐ์—ด ๊ธธ์ด ์›๋ณธ ๋ฐฐ์—ด๊ณผ ๋™์ผํ•จ ์›๋ณธ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ
์ฝœ๋ฐฑ ํ•จ์ˆ˜ ๋ฐ˜ํ™˜๊ฐ’ ์ƒˆ๋กœ์šด ์š”์†Œ๋กœ ์‚ฌ์šฉ๋  ๊ฐ’ ํ•ด๋‹น ์š”์†Œ๋ฅผ ์œ ์ง€ํ• ์ง€ ๊ฒฐ์ •ํ•  T/F

 

 

๐Ÿ“ POINT ๐Ÿ“

โœ”๏ธ map์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•ด ์ƒˆ๋กœ์šด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. (ํ˜•ํƒœ ์ œํ•œ ์—†์Œ) โœ”๏ธ

โœ”๏ธ filter๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถ”์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. โœ”๏ธ

โœ”๏ธ ๋‘ ๋ฉ”์„œ๋“œ ๋ชจ๋‘ ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. โœ”๏ธ

 

'<script>' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Undefined๊ณผ null  (0) 2026.05.28
break์™€ continue  (0) 2026.05.28
Array Iteration (๋ฐฐ์—ด ๋ฐ˜๋ณต)  (0) 2026.05.28
Loop statement (๋ฐ˜๋ณต๋ฌธ)  (0) 2026.05.28
Truthy and Falsy (์ฐธ ๊ฐ™์€ ๊ฐ’ & ๊ฑฐ์ง“ ๊ฐ™์€ ๊ฐ’)  (0) 2026.05.28