배열 안의 객체의 밸류를 가져오려면 어떻게 해야하나요..

// Common
const covid19 = [
    {'0125': 426}, {'0126': 343}, {'0127': 547}, {'0128': 490}, 
    {'0129': 460}, {'0130': 443}, {'0131': 338}, {'0201': 299}
]

// 3-1
// 1월 25일부터 2월 1일까지의 누적 확진자 수와 일 평균 확진자 수를 구하시오.
console.log(covid19[0][0]);

결과값이 undefined가 나옵니다… 보니까 출력값을 covid19[0]["0125"] 이런식으로 하드코딩하면 나오긴 하는데… 사실 이게 근본적인 해결방법은 아닐것같다보니 구체적으로 저런 배열안의 객체의 값을 꺼낼 때 어떤 방식을 사용해야하는지 궁금합니다.

let keys = covid19.map(c => Object.keys(c)[0]);
let values = covid19.map(c => Object.values(c)[0]);

자문자답합니다…

3개의 좋아요

훌륭한답변입니다…

허허… 2시간 삽질했습니다 ㅠㅠ

Object.keys(), Object.values() 를 두번씩 돌리는것도 방법이지만, Object.entries()를 쓰는 방법도 있습니다.

const covid19 = [
    {'0125': 426}, {'0126': 343}, {'0127': 547}, {'0128': 490}, 
    {'0129': 460}, {'0130': 443}, {'0131': 338}, {'0201': 299}
]

const [ keys, values ] = covid19.reduce((acc, object) => {
    const [ keyArr, valueArr ] = acc;
    
    //키가 한개이상일 수 도 있을까 싶어서..
    for ( [ obj_key, obj_value ] of  Object.entries(object) ) {
        keyArr.push(obj_key);
        valueArr.push(obj_value);
    }

    return acc;
}, [[], []]);
1개의 좋아요