[Javascript] - Map of JavaScript

November 3, 2022

JS์—์„œ์˜ Map์€ ํ‚ค์˜ ๋ฐฐ์—ด๊ณผ ๊ฐ’์˜ ๋ฐฐ์—ด ์ด ๋‘๊ฐœ์˜ ๋ฐฐ์—ด์˜ ์กด์žฌํ•œ๋‹ค.

๊ฐ’์„ ์ฐพ์„๋•Œ๋Š” ํ‚ค์˜ ๋ฐฐ์—ด๊ณผ ๊ฐ’์˜ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜์—ฌ ์„œ๋กœ ์ธ๋ฑ์Šค๊ฐ€ ์ผ์น˜ํ• ๋•Œ ๊ฐ’์„ ํšŒ์ˆ˜ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ O(n) ์ด๋‹ค.

๋ฌธ์ œ

  1. ์š”์†Œ ์„ค์ •๊ณผ ํƒ์ƒ‰์ด O(n) ์ด๋‹ค
    • ๋‘ ์ž‘์—… ๋ชจ๋‘ ํ‚ค ๋ฐฐ์—ด์„ ์ˆœํšŒํ•ด์„œ ๋งž๋Š” ํ‚ค๋ฅผ ์ฐพ์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—
  2. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‘ ๋ฐฐ์—ด๋กœ ์ธํ•ด ๊ฐ๊ฐ์˜ ํ‚ค์™€ ๊ฐ’์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ๋ฌดํ•œํžˆ ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ณณ์ด ์•„๋ฌด๋ฐ๋„ ์—†์–ด๋„, ๋ฐฐ์—ด์˜ ์ฐธ์กฐ๋กœ ์ธํ•ด ํ‚ค๊ฐ€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ๋Œ€์ƒ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. (๊ฐ’์˜ ๋ฐฐ์—ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)

WeakMap

ํ‚ค๊ฐ€ ์˜ค์ง Object ํƒ€์ž…๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , Sysbol, ์›์‹œ๊ฐ’์„ ํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

์•ฝํ•œ ์ฐธ์กฐ๋กœ ์ธํ•ด WeakMap์€ ํ‚ค๋ฅผ ์—ด๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค. ํ‚ค ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ‚ค๋ฅผ โ€œ์•ฝํ•œโ€ ์ฐธ์กฐ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๊ฐ€๋ฐ”์ง€ ์ปฌ๋ ‰์…˜์„ ๋ฐฉ์ง€ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์‹œ ํ‚ค ์ฐธ์กฐ ์—ญ์‹œ ์‚ฌ๋ผ์ง„๋‹ค. ๋งต ๋‚ด์˜ ๊ฐ’ ์—ญ์‹œ โ€œ์•ฝํ•œโ€ ์ฐธ์กฐ๋กœ์„œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ๋งž์ง€ ์•Š๋Š”๋‹ค

WeakMap์€ ํ‚ค๊ฐ€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋˜์ง€ ์•Š์„๋•Œ๋งŒ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ •๋ณด๋ฅผ ํ‚ค์™€ ์—ฐ๊ฒฐํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค

results matching ""

    No results matching ""