일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CSS
- 이클립스
- json
- table
- list
- windows
- 배열
- 자바
- javascript
- CMD
- Visual Studio Code
- html
- 이탈리아
- input
- ArrayList
- 자바스크립트
- date
- Eclipse
- Array
- Files
- vscode
- js
- 테이블
- string
- Button
- 인텔리제이
- 문자열
- IntelliJ
- Java
- Maven
- Today
- Total
어제 오늘 내일
[Javascript] 빈 객체 체크하는 3가지 방법 본문
Javascript에서 빈 객체를 체크하는 방법입니다.
- Object.keys() 함수
- 반복문 사용하기
- lodash library 사용하기
1. Object.keys() 함수
function isEmptyObj(obj) {
if(obj.constructor === Object
&& Object.keys(obj).length === 0) {
return true;
}
return false;
}
const obj1 = {};
const obj2 = {name: 'js'};
const str = "Javascript";
document.writeln(isEmptyObj(obj1)); // true
document.writeln(isEmptyObj(obj2)); // false
document.writeln(isEmptyObj(str)); // false
obj.constructor === Object
데이터가 객체인지 체크하기 위해서 constructor를 체크하였습니다.
Object.keys(obj).length === 0
Object.keys() 함수는 파라미터로 입력받은 객체의 key 목록을 배열로 리턴합니다.
따라서, 만약 Object.keys()를 호출한 결과 배열의 길이가 0이면 비어있는 객체입니다.
2. 반복문 사용하기
function isEmptyObj(obj) {
// 객체 타입체크
if(obj.constructor !== Object) {
return false;
}
// property 체크
for(let prop in obj) {
if(obj.hasOwnProperty(prop)) {
return false;
}
}
return true;
}
const obj1 = {};
const obj2 = {name: 'js'};
const str = "Javascript";
document.writeln(isEmptyObj(obj1)); // true
document.writeln(isEmptyObj(obj2)); // false
document.writeln(isEmptyObj(str)); // false
for..in 반복문을 활용하여 빈 객체를 체크할 수도 있습니다.
obj.constructor !== Object
앞의 예제와 마찬가지로 데이터 타입 체크를 위해 constructor를 이용하였습니다.
for(let prop in obj)
객체의 모든 속성(property)을 순회하기 위해서는 for...in 구문을 사용합니다.
obj.hasOwnProperty()
for...in 구문을 이용하면 프로토타입 체인을 따라서 상속되는 프로퍼티들까지 모두 순회합니다.
(위 예제에서는 상속되는 프로퍼티가 없긴 합니다.)
따라서, 그 속성(property)을 제외하고 체크하기 위해서 hasOwnPropery() 함수를 한번 더 활용해야 합니다.
3. lodash library 사용하기
function isEmptyObj(obj) {
if(obj.constructor === Object
&& _.isEmpty(obj)) {
return true;
}
return false;
}
const obj1 = {};
const obj2 = {name: 'js'};
const str = "Javascript";
document.writeln(isEmptyObj(obj1)); // true
document.writeln(isEmptyObj(obj2)); // false
document.writeln(isEmptyObj(str)); // false
lodash 라이브러리를 이용할 수도 있습니다.
(lodash 라이브러리를 이용하기 위해서는
lodash 라이브러리 다운로드 하거나, CND으로 참조할 수 있도록 해 주어야 합니다.
방법은 lodash.com 홈페이지를 참조하세요.)
_.isEmpty()
lodash의 isEmpty() 함수는
object, collection, map, set이 비어있는지를 체크해주는 함수입니다.
간단하게 이 lodash의 isEmpty() 함수를 사용할 수도 있습니다.
데이터의 타입이 객체인지, 그리고 그 객체가 비어있는지 확인하는 방법을 알아보았습니다.
'IT > Javascript' 카테고리의 다른 글
[Javascript] 현재 페이지 URL 가져오기 (2) | 2020.12.27 |
---|---|
[Javascript] 숫자가 정수인지, 실수인지 체크하는 2가지 방법 (4) | 2020.12.26 |
[Javascript] 빈 배열 체크하기 (0) | 2020.12.25 |
[Javascript] 문자열 줄바꿈하는 2가지 방법 (여러줄 표현하기) (0) | 2020.12.25 |
[Javascript] 배열 중복 값 개수 구하기 (1) | 2020.12.16 |