SW 개발/Vanilla JS

[JavaScript] 객체 병합 방법(Objet.assign ν•¨μˆ˜, μ „κ°œμ—°μ‚°μž)

DATA101 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
λ°˜μ‘ν˜•