2025. 8. 26. 19:56ใFront-end/JavaScript

๋ชฉ์ฐจ
1. ์ํ(iteration)
2. Object.keys, values, entries
3. ๊ฐ์ฒด์ ๋ฐฐ์ด ์ ์ฉ ๋ฉ์๋ ์ฌ์ฉํ๋ ๋ฒ
1. ์ํ (iteration)
Map, Set, Array(iterable ๊ฐ์ฒด)์์ ์ฌ์ฉํ๋ ๋ฉ์๋ keys(), values(), entries()์
์ผ๋ฐ ๊ฐ์ฒด(iterable ์๋)์์ ์ฌ์ฉํ๋ ๋ฉ์๋ keys(), values(), entries()๋ ๋ฌธ๋ฒ ์ฐจ์ด๊ฐ ์๋ค.
- Object.keys(obj) : ๊ฐ์ฒด์ ํค๋ง ๋ด์ ๋ฐฐ์ด ๋ฐํ
- Object.values(obj) : ๊ฐ์ฒด์ ๊ฐ๋ง ๋ด์ ๋ฐฐ์ด ๋ฐํ
- Object.entries(obj) : [ํค, ๊ฐ] ์์ ๋ด์ ๋ฐฐ์ด์ ๋ฐํ
2. Object.keys, values, entries
์ผ๋ฐ ๊ฐ์ฒด์ iterable ๊ฐ์ฒด์ ๋ฉ์๋๋ค์ ์ฐจ์ด๋ฅผ ์์๋ณด์.
1. obj.keys()๊ฐ ์๋ Object.keys(obj)๋ฅผ ํธ์ถ
๋ฌธ๋ฒ์ด ๋ค๋ฅธ ์ด์ ๋ ์ ์ฐ์ฑ ๋๋ฌธ์ด๋ค.
JS๋ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ๊ณ ๋ณต์กํ ์๋ฃ๊ตฌ์กฐ/์ปค์คํ ๋ฉ์๋๋ฅผ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ์ ์ฐ์ฑ์ด ํ์ํ๋ค.
Object.values(data)์ ๊ฐ์ ํํ๋ก ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ปค์คํ ๋ฉ์๋์ ๋ด์ฅ ๋ฉ์๋ ๋ชจ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
2. Object.* ํธ์ถ ์ iterable ๊ฐ์ฒด๊ฐ ์๋ '๋ฐฐ์ด'์ ๋ฐํ
์ง์ง ๋ฐฐ์ด์ ๋ฐํํ๋ ์ด์ ๋ ํ์ ํธํ์ฑ ๋๋ฌธ์ด๋ค.
let user = {
name: "John",
age: 30
};
// Object.keys(user) = ["name", "age"]
// Object.value(user) = ["John", 30]
// Object.entries(user) = [ ["name", "John"], ["age", 30] ]
for (let user of Object.values(user)) {
alert(value); // Violet, 30
}
Object.values๋ฅผ ์ฌ์ฉํ์ฌ ํ๋กํผํฐ ๊ฐ์ ๋์์ผ๋ก ์ํ๋ ์์ ์ ํ ์ ์๋ค.
3. ๊ฐ์ฒด์ ๋ฐฐ์ด ์ ์ฉ ๋ฉ์๋ ์ฌ์ฉํ๋ ๋ฒ
์๋ ๊ฐ์ฒด์๋ map, filter๊ฐ์ ๋ฐฐ์ด ์ ์ฉ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
ํ์ง๋ง Object.entries, Object.fromEntries๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ์ฉํ์ฌ ๊ฐ์ฒด์์๋ ๋ฐฐ์ด ์ ์ฉ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
1. Object.entries(obj)๋ก ๋ฐฐ์ด ์ป๊ธฐ(๊ฐ์ฒด์ [ํค, ๊ฐ] ์์ ์์๋ก ํจ)
2. 1์์ ๋ง๋ ๋ฐฐ์ด์ ๋ฐฐ์ด ์ ์ฉ ๋ฉ์๋๋ฅผ ์ ์ฉ
3. 2์์ ๋ฐํ๋ ๋ฐฐ์ด์ Object.fromEntries(array)๋ฅผ ์ ์ฉํด ๋ฐฐ์ด์ ๋ค์ ๊ฐ์ฒด๋ก ๋๋๋ฆผ
let prices = {
banana: 1,
orange: 2,
meat: 4,
};
let doublePrices = Object.fromEntries(
Object.entries(prices).map(([key, value]) => [key, value*2])
};
alert(doublePrices.meat); // 8
์ฐธ๊ณ
'Front-end > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| B27: JSON ๋ฉ์๋ (0) | 2025.08.26 |
|---|---|
| B26: ๊ตฌ์กฐ ๋ถํด ํ ๋น : object๋ฅผ ๋ณ์๋ก ๋ถํดํ๊ธฐ (0) | 2025.08.26 |
| B25 : ์ํฌ๋งต๊ณผ ์ํฌ์ (weak) ๊ฐ์ฒด (0) | 2025.08.26 |
| B24: ๋งต๊ณผ ์ (map & set) ๊ฐ์ฒด (0) | 2025.08.26 |
| ์ค์ฝํ์ ํธ์ด์คํ ํํค์น๊ธฐ (0) | 2025.08.23 |
GitHub