웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > lodash

lodash isEmpty() 정보 및 예제

Last Modified : 2022-02-26 / Created : 2018-07-27
21,513
View Count

이번에는 lodash에서 사용하는 isEmpty()에 대하여 알아봅니다.




# isEmpty() 알아보기

어떤 기능을 할 수 있는지 알아보면 isEmpty()값이 비어있는지... 즉, empty 상태인지를 확인하여 그 결과를 boolean으로 반환해줍니다. 즉 값이 있다면 true를 반환하고 없다면 false를 반환하죠. 그럼 isEmpty()의 장점은 무엇일까요? 간단하게 아래와 같습니다.

  • 객체의 프로퍼티의 존재를 확인 가능
  • 배열의 경우 내부 개수를 확인함
  • Map, Set 등의 여러 타입에 적용가능

이처럼 적용이 가능합니다. 가장 큰 장점은 여러 값을 가지는 배열과 객체 타입의 경우에 적용할 수 있다는 점이죠. 그럼 아래는 간단한 예제입니다.


[[ 알아둘 점 ]]
참고로 isEmpty()는 숫자(Number) 타입의 존재 여부를 확인하기 위해서 적용할 수 없습니다. 즉 값이 숫자인 경우 항상 true를 반환하게 되므로 이 경우 다른 방법을 사용하시기 바랍니다. 예를들어 _.isEmpty(1000)의 결과는 true입니다.


! isEmpty() 예제보기

아래는 몇 가지 값들에 대하여 lodash의 isEmpty()를 수행하고 그 결과를 알아보는 예제입니다.


@ 숫자타입
_.isEmpty(-10);
_.isEmpty(0);
_.isEmpty(1);
_.isEmpty(10);

위의 결과는 아래와 같습니다.
true
true
true
true

숫자 타입의 경우 모두 true를 반환하는군요. 0만 true를 반환할 거란 생각을 했다면 다른 차이를 보입니다.


@ boolean 타입
_.isEmpty(true);
_.isEmpty(false);

결과 보기
true
true

불리언의 값 역시 true, false에 상관없이 true를 반환합니다. lodash의 isEmpty()는 아무래도 여러개의 값을 가지는 타입을 목적으로 만들어졌다고 생각하게됩니다.


@ 문자타입
_.isEmpty('');
_.isEmpty('abc');

_isEmpty(' ');

결과입니다.
true
false

false

문자는 조금 다른 결과를 가져왔습니다. 하나의 단어를 각각의 유무로 판단하며 공백 역시 값을 가졌다고 보고 false를 반환합니다.


@ 배열타입
_.isEmpty([]);
_.isEmpty([1, 2]);

결과입니다.
true
false

아무래도 가장 많이 필요한 타입이 바로 배열이라 생각합니다. 일반적으로 length를 반복 사용해야했지만 lodash의 isEmpty()는 이럴 필요가 없어 편리합니다.


@ 객체타입
_.isEmpty({});
_.isEmpty({ a: 1 });

결과보기
true
false

객제 역시 프로퍼티를 확인하고 값의 존재 유무를 반환하게 됩니다.


@ 그 외 예제들
_.isEmpty(null);

결과입니다.
true


! isNotEmpty() 구현하기


lodash의 isEmpty()의 반대인 isNotEmpty()가 있다면 편리하겠지만 lodash에서 자체 제공하는 메소드는 없습니다 ~ 이런 이유로 몇 가지 방법들이 사용되는데 간략하게 알아봅니다.

하나. ! 기호를 앞에 사용하는 방법
아래와 같이 ! 기호를 앞에 붙여서 사용하는 방법입니다. 코드 길이가 가장 짧은 방법입니다. test라는 객체는 비어있지 않으므로 isNotEmpty()인 경우라면 true를 반환하겠죠.
test = { a: 123 }

!isEmpty(test)
// true

isEmpty(test)
// false

둘. negate()를 사용하는 방법
이 방법은 lodash를 사용하여 반대의 값을 반환하는 함수를 추가로 만들어 사용하는 방법입니다. negate()는 함수를 인자로 받고 새로운 함수를 반환하게 됩니다.
isNotEmpty = _.negate(_.isEmpty)

isNotEmpty(test)

이 방법도 간단하며 코드상 좀 더 명확하게 기능을 확인할 수 있습니다.


여기까지 lodash의 isEmpty()에 대하여 알아보았고 그 반대인 isNotEmpty()에 대하여도 간략하게 확인했습니다.

아래의 글도 찾고 계시지 않나요?

    Previous

    lodash debounce() 정보 및 예제

    Previous

    lodash find()에서 AND, OR 조건으로 찾기