Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트에서 객체의 숫자 값을 정렬해 배열로 만드는 방법

문제 소개

다음과 같이 여러 개의 숫자 값을 가진 객체가 있다고 가정해 보겠습니다.

const obj = {
    key1: 56,
    key2: 67,
    key3: 23,
    key4: 11,
    key5: 88
};

이 객체를 입력받아 객체의 값들을 오름차순으로 정렬한 배열을 반환하는 자바스크립트 함수를 작성해야 하며, 최종적으로 다음과 같은 결과를 얻어야 합니다.

const arr = [11, 23, 56, 67, 88];

즉, 객체의 값(value)들을 추출한 뒤 숫자 크기 기준으로 정렬하여 하나의 배열에 담는 것이 목표입니다.

구현 방법

구현은 다음 세 단계로 진행할 수 있습니다.

1단계: Object.keys() 메서드를 사용해 객체의 모든 키를 배열 형태로 가져옵니다.

2단계: map() 메서드로 각 키에 대응하는 값만 추출하여 값들로 이루어진 배열을 만듭니다.

3단계: sort() 메서드에 비교 함수 (a, b) => a - b를 전달해 숫자 오름차순으로 정렬합니다. 비교 함수를 생략하면 요소가 문자열로 취급되어 의도하지 않은 순서로 정렬될 수 있으므로 반드시 지정해 주어야 합니다.

전체 코드

위 과정을 적용한 완성된 코드는 다음과 같습니다.

const obj = {
    key1: 56,
    key2: 67,
    key3: 23,
    key4: 11,
    key5: 88
};
const sortObject = obj => {
    const arr = Object.keys(obj).map(el => {
        return obj[el];
    });
    arr.sort((a, b) => {
        return a - b;
    });
    return arr;
};
console.log(sortObject(obj));

출력 결과

코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

[ 11, 23, 56, 67, 88 ]