객체를 value 값을 기준으로 sort() 시켜 줄 수 있게 데이터를 변환시켜 주는 과정이 필요합니다.
코드
const fruits = {
Apple: 4000,
Banana: 10000,
Cherry: 800,
Kiwi: 7000,
};
const object = Object.fromEntries(
Object.entries(fruits).sort((a, b) => a[1] - b[1])
);
console.log(object);
// { "Apple": 4000, "Banana": 10000, "Cherry": 800, "Kiwi": 7000 }
sort() 메서드를 이용하기 위해서 배열로 변환시킨 후, 다시 객체로 만들어 주는 방법을 거쳐줍니다.
코드 풀이
const fruits = {
Apple: 4000,
Banana: 10000,
};
// 객체 -> 배열로 [key, value]
const entries = Object.entries(fruits)
// [ ['Apple', 4000], ['Banana', 10000] ];
// 1.
const object = Object.fromEntries(entries);
// 2.
const object = array.reduce((acc, value, index) => {
return { ...acc, [value[0]]: value[1] };
}, {});
위와 같이 sort() 메서드를 사용하기 위해서 풀어준 배열 데이터를 다시 객체로 만들어주는 방법을 사용해 원래 형식으로 돌려줍니다.
key 값을 기준으로 정렬
const name = {
홍씨: 4000,
김씨: 10000,
창씨: 800,
박씨: 7000,
};
const object = Object.fromEntries(
// 첫번째 값은 Key, 두번째 값은 Value
Object.entries(name).sort((a, b) => a[0] > b[0] ? 1 : -1)
);
console.log(object);
// { "김씨": 10000, "박씨": 7000, "창씨": 800, "홍씨": 4000 }
key 값을 기준으로 정렬하기 위해서는 첫번째 값(key)을 기준으로 비교해주는 코드로 정렬 시켜줍니다.
참고자료