B25 : ๊ฐ์ฒด ๋ฉ”์„œ๋“œ Object.keys, values, entries

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

 

 

 

 

์ฐธ๊ณ 

๋ฐ˜์‘ํ˜•