Object를 이용한 객체 확인
const obj = {}
const obj2 = {message : '안 빈 객체'}
console.log(Object.keys(obj)) // []
console.log(Object.keys(obj2)) // ['message']
여기 두 가지의 객체가 존재합니다. 첫 번째는 빈객체, 두 번째는 비어있지 않은 객체, 이 두 객체를 console.log로 찍어보면 첫 번째 객체는 빈 배열, 두 번째 객체는 message가 들어있는 배열이 나오는 걸 확인할 수 있는데요.
즉, 객체안의 key값을 받아오는 함수가 바로 keys입니다. (이 keys는 Object 뿐만 아니라 Map에서도 사용되니 참고하면 좋을것 같네요.)
배열 안에 들어가 있으니 우리는 이 배열의 길이를 잴 수 있겠죠? length를 이용할 수 있으니 빈객체는 Object.keys(객체).length가 0이 반환이 될 것이고, 객체 안에 데이터가 있는 경우에는 데이터 개수에 맞는 값이 나올 것입니다.
즉 Object.keys(obj).length로 빈객체를 알 수 있게 된 것입니다.
Object.keys() 안에는 객체만 들어가나요?
객체도 들어가지만 문자열도 들어갈 수 있습니다. 왜냐하면 문자열도 객체로 분류되기 때문입니다.
객체확인 함수를 만들어보자
매번 Object.keys(obj).length를 구해서 사용해도 되지만 간단하게 함수로 미리 만들어 놓고 해당 함수를 사용할 수 있습니다.
function isEmpty(obj){
if(obj.constructor === Object){ //매개변수로 받아온 obj가 객체인지 확인하는 작업
if(Object.keys(obj).length === 0 ){
return true;
} else {
return false;
}
} else {
//객체가 아닐 때
return false;
}
}
이렇게 자주 사용하는 함수들은 따로 만들어 놓고 불러와서 사용하면 조금 더 편리하게 작업을 할 수 있게 됩니다.
'프로그래밍📚 > javascript' 카테고리의 다른 글
비동기 처리방법 async/await (0) | 2024.01.11 |
---|---|
비동기 처리 방법 Promise (0) | 2024.01.11 |
Array.find (0) | 2023.12.13 |
안정성을 위한 예외 처리(기본) (0) | 2023.12.12 |
forEach와 map 함수 (0) | 2023.12.12 |