Recent Posts
Recent Comments
Archives
๋ฐ˜์‘ํ˜•
250x250
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-04 00:00
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

[JavaScript] ๊ฐ์ฒด ๋ณ‘ํ•ฉ ๋ฐฉ๋ฒ•(Objet.assign ํ•จ์ˆ˜, ์ „๊ฐœ์—ฐ์‚ฐ์ž) ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Vanilla JS

[JavaScript] ๊ฐ์ฒด ๋ณ‘ํ•ฉ ๋ฐฉ๋ฒ•(Objet.assign ํ•จ์ˆ˜, ์ „๊ฐœ์—ฐ์‚ฐ์ž)

Tony Park 2021. 12. 3. 00:01
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ๋ชฉํ‘œ

JavaScript์—์„œ ๊ฐ์ฒด ๋ณ‘ํ•ฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™์Šตํ•œ๋‹ค.

๋ชฉ์ฐจ

1.  Object.assign() ํ•จ์ˆ˜
2.  ์ „๊ฐœ์—ฐ์‚ฐ์ž
3.  ์ผ๋ฐ˜ ํ•จ์ˆ˜ ์ •์˜

๋“ค์–ด๊ฐ€๋ฉฐ

๊ฐ์ฒด๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ €, 3๊ฐœ ๊ฐ์ฒด๋ฅผ ์˜ˆ์‹œ๋กœ ์ •์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

let obj1 = {
    a: 10,
    b: 20,
    c: 30
}

let obj2 = {
    c: 30,
    d: 40,
}

let obj3 = {
    c: 770,
    d: 477,
}

1.  Objet.assign() ํ•จ์ˆ˜

ํ•จ์ˆ˜ ์›ํ˜•

Object.assign(๊ฐ์ฒด1, ๊ฐ์ฒด2, ๊ฐ์ฒด3, ... , ๊ฐ์ฒด N);

 

Object ๊ฐ์ฒด ๋‚ด assign ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์˜ ์›์†Œ๋ฅผ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋‹จ, ์ค‘๋ณต๋˜๋Š” ์›์†Œ๋Š” ๋‚˜์ค‘์— ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฐ์ฒด์˜ ์›์†Œ๋กœ ์ตœ์ข… ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

let objEx01 = Object.assign(obj1, obj2, obj3);
console.log(objEx01);

 

3๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ Objet ๊ฐ์ฒด ๋‚ด assign ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰๊ฒฐ๊ณผ

{ a: 10, b: 20, c: 770, d: 477 }

2.  ์ „๊ฐœ์—ฐ์‚ฌ์ž ์‚ฌ์šฉ

ํ•จ์ˆ˜ ์›ํ˜•

๊ฐ์ฒด = {...๊ฐ์ฒด1, ... ๊ฐ์ฒด2, ...๊ฐ์ฒด3, ... , ๊ฐ์ฒด N};

 

Object ๊ฐ์ฒด ๋‚ด assign ํ•จ์ˆ˜๋Š” assign ํ•จ์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ

๊ฐ์ฒด์˜ ์›์†Œ๋ฅผ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋‹จ, ์ค‘๋ณต๋˜๋Š” ์›์†Œ๋Š” ๋‚˜์ค‘์— ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฐ์ฒด์˜ ์›์†Œ๋กœ ์ตœ์ข… ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

let objEx02 = { ...obj1, ... obj2 };
console.log(objEx02);

์‹คํ–‰๊ฒฐ๊ณผ

{ a: 10, b: 20, c: 30, d: 40 }

3.  ์ผ๋ฐ˜ ํ•จ์ˆ˜ ์ •์˜

function f1(obj){
    console.log(obj);
    console.log(obj.a, obj.b, obj.c, obj.d);
}
f1({ ...obj1, ... obj2});

 

์œ„ ์ฝ”๋“œ๋Š” ์‹ค๋ฌด์—์„œ ๊ฐ์ฒด ๋ณ‘ํ•ฉ ์‹œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

๋‘ ๊ฐ์ฒด๋ฅผ ์ „๊ฐœ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋‘ ๋ณ‘ํ•ฉํ•˜๊ณ ,

๋ณ‘ํ•ฉํ•œ ๊ฐ์ฒด๋ฅผ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ๋ชฉ์ ์— ๋งž๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŽธ๋ฆฌํ•˜๊ฒŒ ์„ค๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

์‹คํ–‰๊ฒฐ๊ณผ

{ a: 10, b: 20, c: 30, d: 40 }
10 20 30 40

ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ž˜์— ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ์ฆ๊ฒ๊ณ  ํ–‰๋ณตํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค :)

728x90
๋ฐ˜์‘ํ˜•
Comments