728x90
반응형
아래와 같은 객체가 있다고 가정을 해보고, 객체의 값이 큰 순서대로 정렬된 키를 결과로 얻고 싶을 때는 어떻게 해야할까? 코딩테스트를 연습하다가 정리를 해보면 좋을 거 같아서 작성해보았다.
const obj = { '1': 1, '2': 3, '3': 4, '4': 2 }
2가지 방법
1. for in문을 활용하여 새로운 array를 다시 만드는 방법
- for in문을 활용하여 객체의 키와 값으로 새로운 배열을 만들고, 그 배열을 sort하는 방법이 있다.
let sortArray = [];
for (let key in obj) {
sortArray.push([key, obj[key]]);
}
console.log(sortArray); // [ [ '1', 1 ], [ '2', 3 ], [ '3', 4 ], [ '4', 2 ] ]
sortArray.sort(function (a, b) {
return b[1] - a[1];
});
console.log(sortArray); // [ [ '3', 4 ], [ '2', 3 ], [ '4', 2 ], [ '1', 1 ] ]
let result = [];
sortArray.map((arr) => result.push(Number(arr[0])));
console.log(result); // [3, 2, 4, 1]
728x90
2. Object.entries를 이용한 방법
- 단, es8이 지원되는 브라우저에서만 가능하다.
const sortable = Object.entries(obj).sort(([, a], [, b]) => b - a);
let result = [];
sortable.map((arr) => result.push(Number(arr[0])));
console.log(result); // [3, 2, 4, 1]
1. Object.entries(객체명)을 사용하여 이중 배열로 만들고,
[ [ '1', 1 ], [ '2', 3 ], [ '3', 4 ], [ '4', 2 ] ]
2. 값이 큰 순서대로 sort 한다.
[ [ '3', 4 ], [ '2', 3 ], [ '4', 2 ], [ '1', 1 ] ]
반응형
참고자료
728x90
반응형
'JavaScript' 카테고리의 다른 글
협업을 위한 .prettierrc 파일 만들기 (0) | 2023.02.06 |
---|---|
[자바스크립트-배열] 모든 값을 0으로 가지는 배열 만들기 (0) | 2023.02.03 |
[자바스크립트] 재귀함수와 스택 프레임(Stack Frame) (0) | 2023.02.03 |
Airbnb 컨벤션에 따라 ESLint 설정하기 (0) | 2023.02.02 |
[자바스크립트-객체] 객체 키를 동적으로 할당하는 법(computed property) (1) | 2023.02.01 |
댓글