본문 바로가기

JavaScript/methods

[JavaScript] Object.keys, Object.values, Object. entries, Object.fromEntries

 

Object.keys, Object.values, Object.entrie

각 메서드는 객체의 키, 벨류, 혹은 둘 다를 배열로 반환한다

let user = {
  name: "John",
  age: 30
};

console.log(Object.keys(user)) // 출력 : ["name", "age"]
console.log(Object.values(user)) // 출력 : ["John", 30]
console.log(Object.entries(user)) // 출력 : [ ["name","John"], ["age",30] ]

 

 

fromEntries(iterable)

 key-value 리스트를 객체로 변환한다.

const entries = new Map([
  ['foo', 'bar'],
  ['baz', 42],
])

const obj = Object.fromEntries(entries)

console.log(obj)// 출력: Object { foo: "bar", baz: 42 }

 

객체의 모든 키값에 2배를 하려면?

let prices = {
  banana: 1,
  orange: 2,
  meat: 4,
};

let doublePrices = Object.fromEntries(
  // 객체를 배열로 변환해서 배열 전용 메서드인 map을 적용하고 fromEntries를 사용해 배열을 다시 객체로 되돌립니다.
  Object.entries(prices).map(([key, value]) => [key, value * 2])
);

alert(doublePrices.meat); // 8