배열이 비어있는 것을 확인하는 것은 length를 활용하면 쉽다.
그런데 객체는 length 속성을 사용할 수 없다.
어떻게 객체가 비어있다는 것을 확인할 수 있을까?
내장 메소드를 활용해서 간단하게 구현 할 수 있다.
Object.keys()
메소드는 주어진 객체의 속성 이름들을 일반적인 반복문과 동일한 순서로 순회되는 열거할 수 있는 배열로 반환합니다.
- MDN docs -
즉, 특정 객체의 key를 배열의 형태로 만들어준다는 것이다.
아래의 예시를 보면 이해가 쉽다.
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1)); // ["a", "b", "c"]
그래서..이를 어떻게 활용하느냐?
key들이 배열
이 되었다는 점에 주목하자.
배열은 length
속성을 사용할 수 있다!!
즉, 아래와 같은 코드를 사용할 수 있다는 것이다.
Object.keys(obj).length
obj라는 객체
의 key
로 이루어진 배열
을 만들고,
그 것의 length
를 구하는 것이다.
그렇다면, obj가 빈 배열
이라면 어떻게 될까?
저 값은 0이 된다.
obj라는 객체가 빈 객체인지 확인하고자 한다면,
아래와 같은 코드를 사용하자.
Object.keys(obj).length === 0