๐คทโ๏ธ ๋ณธ๋ก ์ ์์ ์ค์ํ ๊ฐ์ฒด ์ง์ ๊ณต๋ถํ๊ธฐ
๊ฐ์ฅ ์ค์ํ ๊ฐ์ฒด์ ๊ฐ๋
๊ณผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ
https://cometruedream.tistory.com/261
๊ฐ์ฅ ์ค์ํ ๊ฐ์ฒด Object.values(), Object.keys() ๋ฉ์๋ ๊ฐ๋
https://cometruedream.tistory.com/264
๐คทโ๏ธ Object.assign()๋?
์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ ์ค์ํ ๋ฐ์ดํฐ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
๊ฐ์ฒด๋ฅผ ์ ์ฉํ๊ฒ ๋ค๋ฃฐ์ ์๋๋ก ๋๋ ๋ค์ํ ๋ฉ์๋๋ค์ด ์กด์ฌํ์ง๋ง ๊ทธ์ค์์ ๊ฐ์ฒด๋ฅผ ๋ณํฉํ๊ณ ๊ฐ์ฒด๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์ ์ฉํ ๊ฐ์ฒด ๋ฉ์๋๋ก Object.assign() ๋ฉ์๋๊ฐ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋?
ํด๋น ๊ธ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๊ฐ๋ ์ ๋ณด์๋๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
https://cometruedream.tistory.com/261
๐คทโ๏ธ Object.assign() ์ฌ์ฉ๋ฒ?
Object.assign() ๋ฉ์๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌ, ๋ณํฉ, ์ ๋ฐ์ดํธ์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด ๋ฉ์๋ ์ ๋๋ค.
์ฝ๊ฒ ์ดํดํ ์ ์๋ ๊ฐ๋ 2๊ฐ์ง
- ๊ฐ์ฒด๋ณต์ฌ: ํ๋์ ๊ฐ์ฒด๋ฅผ ๋ค๋ฅธ ๊ฐ์ฒด์ ๊ทธ๋๋ก ๋ณต์ฌ
- ๊ฐ์ฒด๋ณํฉ: ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ํ๋์ ๊ฐ์ฒด๋ก ๋ณํฉ
1. ๊ฐ์ฒด ๋ณต์ฌ
์์
let originalPhoneBook = {
"Alice": "123-456-7890"
};
let copiedPhoneBook = Object.assign({}, originalPhoneBook);
console.log(copiedPhoneBook);
// ์ถ๋ ฅ: { "Alice": "123-456-7890" }
์์ ์์ ์์ originalPhoneBook ๊ธฐ์กด์ ๊ฐ์ฒด ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
copiedPhoneBook ๋ณ์๋ Object.assign() ๋ฉ์๋๋ฅผ ํ์ฉํด์ originalPhoneBook ์๋ก์ด ๊ฐ์ฒด์ ๊ฐ์ ๋ณต์ฌํฉ๋๋ค.
๊ทธ๋์ originalPhoneBook๊ณผ copiedPhoneBook ๊ฐ์ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
2. ๊ฐ์ฒด ๋ณํฉ
์์
let phoneBook1 = {
"Alice": "123-456-7890"
};
let phoneBook2 = {
"Bob": "987-654-3210"
};
let mergedPhoneBook = Object.assign({}, phoneBook1, phoneBook2);
console.log(mergedPhoneBook);
// ์ถ๋ ฅ: { "Alice": "123-456-7890", "Bob": "987-654-3210" }
์์ ์์ ์์ phoneBook1์ phoneBook2 ๋๊ฐ์ ๊ฐ์ฒด๋ฅผ Object.assign() ๋ฉ์๋๋ฅผ ํ์ฉํด์ ๋ณํฉํฉ๋๋ค.
์์๋๋ฉด ์ข์ ๊ฟํ
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์์ ์์์ ์ ์ฅ ๊ฐ๊ณผ ๋ค๋ฅด๊ฒ ๊ฐ์ฒด๋ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๊ฐ์ฒด ๊ฐ์ ๋ด๊ณ ์์ต๋๋ค.
3. Object.assign({}, originalObject)์ Object.assign(originalObject) ์ฐจ์ด์
Object.assign() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์๋ฉด์ ๋์ฐ๋ฏธ๊ฐ ์ข์ผ์ ๋ถ์ 2๊ฐ์ ๋ฐฉ์์ ๋ณด์ค์ ์์ต๋๋ค.
๋๊ฐ์ ๋ฐฉ์์ ์ฐจ์ด์ ์ ๋ํด์ ๊ฐ๋ ์ ์์๋ณด๊ฒ ์ต๋๋ค.
object.assign({}, originalObject) ์์
let originalPhoneBook = {
"Alice": "123-456-7890"
};
let copiedPhoneBook = Object.assign({}, originalPhoneBook);
console.log(copiedPhoneBook);
์ด ๋ฐฉ์์ ์๋ก์ด ๊ฐ์ฒด {}๋ฅผ ๋ง๋ค์ด์ ์๋ก์ด ๊ฐ์ฒด์์ originalPhoneBook ๋ณต์ฌํ๋ ๋ฐฉ์์ ๋๋ค.
์ค์ํ ์ ์ copiedPhoneBook ์๋ก์ด ๊ฐ์ฒด ๊ฐ์ ๋ด๊ณ ์์ผ๋ฉฐ originalPhoneBook ๋ณ์๋ ๋ณํ์ง ์์ต๋๋ค.
object.assign(originalObject)
let originalPhoneBook = {
"Alice": "123-456-7890"
};
let phoneBook2 = {
"Bob": "987-654-3210"
};
let copiedPhoneBook = Object.assign(originalPhoneBook, phoneBook2);
console.log(copiedPhoneBook);
console.log(originalPhoneBook);
//{Alice: '123-456-7890', Bob: '987-654-3210'}
์ด๋ฐฉ์์ originalPhoneBook ๊ฐ์ฒด์ phoneBook2 ๋ณํฉํ๋ ๋ฐฉ์์ ๋๋ค.
๊ทธ๋์ originalPhoneBook ๋ณ์๋ phoneBook2 ๊ฐ์ ๋ณํฉํ ๊ฐ์ฒด์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ค์ํ์ ์ originalPhoneBook๊ฐ์ฒด์ ๊ฐ์ด ๋ฐ๋๊ฒ์ ๋๋ค.
์์ 2๊ฐ์ ์์ ์ ์ฐจ์ด์
์์ ๋๊ฐ์ ์์ ๋ก Object.assign({}, ๊ฐ์ฒด), Object.assign(๊ฐ์ฒด1, ๊ฐ์ฒด2) ๋ฉ์๋๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์์๋ณด์๊ณ ๋๊ฐ์ ๋ฐฉ์์ ์ฐจ์ด์ ์ ๋ํด์ ์์๋ณด์์ต๋๋ค.
๐คทโ๏ธ ๋ง์ง๋ง์ผ๋ก
์๋ฐ์คํฌ๋ฆฝํธ ๋ค์ํ ๊ฐ์ฒด ๋ฉ์๋๊ฐ ์กด์ฌํ๋ฉฐ Object.assign() ๋ฉ์๋๋ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๊ณ ๋ณํฉํ๊ณ ์ ๋ฐ์ดํธํ๋๋ฐ ์ ์ฉํ ๊ฐ์ฒด ๋ฉ์๋์ ๋๋ค.
Object.assign() ์์ ๋ค์ ๋ณด๋ฉด์ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ฐ๋ ๋ ์ดํดํ๋๊ฒ์ด ์ค์ํ๋ฉฐ ์๋ณธ์ ๊ฐ์ฒด๋ฅผ ์์ ํ๋์ง ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋๋์ง ๊ฐ์ฒด์ ๋งค์ปค๋์ฆ์ ์ดํดํ๊ณ ์ฌ์ฉํ๋๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!
https://cometruedream.tistory.com/247
https://cometruedream.tistory.com/243
https://cometruedream.tistory.com/242
https://cometruedream.tistory.com/241
https://cometruedream.tistory.com/244