Object ๊ณ ๊ธ ํด์ฆ
1. ๊ฐ์ฒด ๊ตฌ์กฐ๋ถํด ํ ๋น์ผ๋ก name, age๋ฅผ ๋ณ์๋ก ์ถ์ถํ์ธ์.
const person = { name: 'Ghost', age: 20 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
const { name, age } = person;
const { name, age } = person;
console.log(name, age);
2. Symbol์ key๋ก ๊ฐ๋ ์์ฑ์ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ , ํด๋น ๊ฐ์ ์ถ๋ ฅํ์ธ์.
const sym = Symbol('id');
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
obj[sym] = ...
const obj = {};
obj[sym] = 123;
console.log(obj[sym]);
3. Object.freeze๋ก ๊ฐ์ฒด๋ฅผ ๋๊ฒฐํ๊ณ , ๊ฐ ๋ณ๊ฒฝ ์๋ ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ์ธ์.
const obj = { a: 1 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.freeze(obj); obj.a = 2;
Object.freeze(obj);
obj.a = 2;
console.log(obj.a); // 1
4. ๊ฐ์ฒด์ key๋ง ์ํํ๋ฉฐ ๋ชจ๋ ์ถ๋ ฅํ์ธ์. (for...in ์ฌ์ฉ ๊ธ์ง)
const obj = { a: 1, b: 2 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.keys(obj).forEach
Object.keys(obj).forEach(k => console.log(k));
5. ๊ฐ์ฒด์์ ๊ฐ์ด 2 ์ด์์ธ key๋ง ๋ฐฐ์ด๋ก ์ถ์ถํ์ธ์.
const obj = { a: 1, b: 2, c: 3 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.entries + filter + map
const arr = Object.entries(obj).filter(([k, v]) => v >= 2).map(([k]) => k);
console.log(arr);
6. ๊ฐ์ฒด์ ๋ชจ๋ ๊ฐ์ 2๋ฐฐ๋ก ๋ง๋ ์ ๊ฐ์ฒด๋ฅผ ๋ง๋์ธ์.
const obj = { a: 1, b: 2 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.entries + reduce
const doubled = Object.entries(obj).reduce((acc, [k, v]) => {
acc[k] = v * 2;
return acc;
}, {});
console.log(doubled);
7. ๊ฐ์ฒด์์ ํน์ key๋ง ์ ์ธํ ์ ๊ฐ์ฒด๋ฅผ ๋ง๋์ธ์. (key: 'b')
const obj = { a: 1, b: 2, c: 3 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.entries + filter + reduce
const filtered = Object.entries(obj).filter(([k]) => k !== 'b').reduce((acc, [k, v]) => {
acc[k] = v;
return acc;
}, {});
console.log(filtered);
8. ๊ฐ์ฒด๋ฅผ [key, value] ์์ ๋ฐฐ์ด๋ก ๋ณํํ์ธ์.
const obj = { a: 1, b: 2 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.entries(obj)
console.log(Object.entries(obj));
9. ๊ฐ์ฒด์ ๋ชจ๋ ๊ฐ์ด ์ง์์ธ์ง ํ๋ณํ์ธ์.
const obj = { a: 2, b: 4, c: 5 };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.values + every
console.log(Object.values(obj).every(v => v % 2 === 0));
10. ๊ฐ์ฒด์ key์ value๋ฅผ ๋ชจ๋ ๋ฌธ์์ด๋ก ๋ณํํ ์ ๊ฐ์ฒด๋ฅผ ๋ง๋์ธ์.
const obj = { a: 1, b: true, c: null };
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์
Object.entries + reduce + String()
const strObj = Object.entries(obj).reduce((acc, [k, v]) => {
acc[String(k)] = String(v);
return acc;
}, {});
console.log(strObj);