자바스크립트에서 만약
빈 배열 값이 존재하는 경우 이런 값만 삭제하는 방법을 알아보려고 합니다.
예를들어 기존의 값이 위라면 아래와 같이 변경하는 방법입니다.
myNum = [1, undefined, 3, '', 5]; // 변경 전
myNum = [1, 3, 5] // 변경 후
즉 값이 비었거나 선언되지 않은 배열 값만 제거하는 방법입니다.
# 자바스크립트 배열에서 빈 값 제거하기
이제 예제를 하나 만들어 봅니다. 일단 테스트 변수를 하나 만들어야 겠죠. 위의 myNum 배열을 그대로 가져옵니다. 그리고 여기서 배열 함수
filter()를 사용해 값이 있는 것만 반환하도록 코드를 작성합니다.
myNum = [1, undefined, 3, '', 5];
myNum = myNum.filter(function(item) {
return item !== null && item !== undefined && item !== '';
});
코드를 실행하면 아래와 같이 결과가 나타나게 됩니다.
console.log(myNum);
[1, 3, 5]
원하는 결과가 나타났습니다. 참고로 조건이 맞으므로 숫자 0의 값도 반환하여 가져올 수 있습니다.
! 배열에서 음수만 반환하는 방법
조건을 조금 바꿔서 이번에는 음수만 가져오는 방법을 알아봅니다. 0보다 작은 값으로 return해주면 될 것입니다. 아래처럼 코드를 수정하도록 합니다.
myNum = [1, -1, 3, -3, -5, 7];
myNum = myNum.filter(function(item) {
return item < 0;
});
결과를 확인하면 아래와 같습니다.
console.log(myNum);
[-1, -3, -5]
간단하게 음수만 가져왔습니다. 이처럼 filter()를 사용하면 어떤 조건이든 원하는 값만 쉽게 반환할 수 있습니다.
! 브라우저 호환성 알아보기
참고로 Array의
filter()는 IE 9 호환하므로 그 이상의 환경에서 사용할 수 있습니다. 그 외의 대부분의 브라우저는 모두 지원합니다.