[JS] ๋ฐฐ์—ด๋ณ€ํ™˜๐Ÿค” ์ „๊ฐœ์—ฐ์‚ฐ์ž, Array.from ๋ฉ”์„œ๋“œ

J.yeonยท2024๋…„ 9์›” 23์ผ
0

๋ฐฐ์—ด ๋ณ€ํ™˜ํ•  ๋•Œ๋งˆ๋‹ค ๋นˆ ๋ฐฐ์—ด์— push๋กœ ๋„ฃ๊ฑฐ๋‚˜ ์ „๊ฐœ์—ฐ์‚ฐ์ž๋งŒ ์ฃผ๊ตฌ์žฅ์ฐฝ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ
์œ—๋ถ„๋“ค(?) ์ฝ”๋“œ๋ณด๋‹ˆ๊นŒ Array.from ๋ฉ”์„œ๋“œ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹œ๋”๋ผ.

๊ฒฐ๊ณผ๊ฐ’์€ ๊ฐ™๊ธธ๋ž˜ ๋ญ˜ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€์—†๋Š”๊ฑด๊ฐ€ ์‹ถ์—ˆ๋Š”๋ฐ... ์•„๋‹ˆ์—ˆ์Œ๐Ÿคฏ;
์ง€๊ธˆ๊ป ๊ฐœ๋…๋„ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉํ•œ...ใ…‹



์ „๊ฐœ์—ฐ์‚ฐ์ž

๋‹จ์ˆœํžˆ ๋ฐฐ์—ด ๋ณต์‚ฌ๋‚˜ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค ๋•Œ ์ ํ•ฉํ•˜๋‹ค.
๋ฌธ๋ฒ•์ด ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ด๋ผ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

ex)

const set = new Set([1,2,3]);
const arr = [...set]; 
// [1,2,3]

const str = 'tomato';
const arr2 = [...str];
// ['t', 'o', 'm', 'a', 't', 'o']

์œ ์˜ํ•  ์ 

  • ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด(arguments, NodeList)์ฒ˜๋Ÿผ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ œํ•œ์ด ์žˆ๋‹ค.
ex) ์—๋Ÿฌ์˜ˆ์‹œ๐Ÿ‘‡

const ex = 123;
const arr = [...ex];

ํ•˜์ง€๋งŒ querySelectorAll()๋กœ ๋ฐ˜ํ™˜ํ•œ ์š”์†Œ์—๋Š” ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์„œ ์˜์•„ํ–ˆ๋Š”๋ฐ,
๐Ÿ’ก ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ชจ๋“  NodeList ๊ฐ์ฒด๊ฐ€ ์ดํ„ฐ๋Ÿฌ๋ธ”๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด์„œ querySelectorAll๋กœ ๋ฐ˜ํ™˜๋œ NodeList๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์–ป์€ NodeList๋ผ๋„ ์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

์ฃผ์˜ํ•  ์ 

  • ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ
    - ์ผ๋ถ€ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €๋‚˜ ํŠน์ • ํ™˜๊ฒฝ์—์„œ๋Š” NodeList๊ฐ€ ์ดํ„ฐ๋Ÿฌ๋ธ”๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ „๊ฐœ์—ฐ์‚ฐ์ž๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์–ด, ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด Array.from ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • HTMLCollection ๋ณด๋‹ค๋Š” NodeList
    - HTMLCollection๊ณผ NodeList๋Š” ๋ชจ๋‘ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์ด๋ฉด์„œ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด๊ธฐ๋•Œ๋ฌธ์— for...of๋ฌธ, for๋ฌธ ๊ฐ™์€ ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ HTMLCollection์€ forEach๋ฉ”์„œ๋“œ๋กœ ์ˆœํšŒ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— NodeList๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค.

๐Ÿ’ก์ฆ‰, NodeList๋ผ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  ํ™˜๊ฒฝ์—์„œ ์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Array.from()์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


์กด๊ฒฝํ•˜๋Š” Inpa๋‹˜์˜ ์ดํ„ฐ๋Ÿฌ๋ธ”-์™„๋ฒฝ ์ดํ•ด (์ฐธ๊ณ ๐Ÿ™)
codingEverybody_HTMLCollection๊ณผ NodeList ๋น„๊ต (์ฐธ๊ณ ๐Ÿ™)



Array.from()

์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋ฟ ์•„๋‹ˆ๋ผ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด ์•„๋‹Œ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด ์œ ์šฉํ•˜๋‹ค.
๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋งคํ•‘ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์–ด, ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๋™์‹œ์— ๊ฐ ์š”์†Œ๋ฅผ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

ex) ๋งคํ•‘ ์˜ˆ์‹œ

const arr = Array.from('hello', char => char.toUpperCase());
// ['H', 'E', 'L', 'L', 'O']

๐Ÿ‘€๊ฒฐ๋ก ์€ ๊ทธ๋ƒฅ ๋งคํ•‘ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•œ๋‹ค๋ฉด Array.from() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์œ ์šฉํ•  ๋“ฏ ํ•˜๋‹ค.

profile
๋‚˜ํ˜ผ์ž๋งŒ ์œˆ๋„์šฐUP๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€