Javascript Cookbook

값을 걸러낸 배열 작성하기

문제

배열 원소의 값을 걸러내어 그 결과로 새로운 배열을 만들고 싶다.

해결

Array 객체의 filter 메서드를 사용하면 된다.

function removeChars(element,index,array){
    return (element !== "**");
}

var charSet = new Array("**","bb","cd","**","cc","**","dd","**");

var newArray = charSet.filter(removeChars);
document.write(newArray);   //bb,cd,cc,dd

설명

filter 메서드는 모든 배열 원소에 콜백 함수를 적용한다.

filter 메서드에 인수로 전달된 함수는 배열 원소 확인 결과에 따라 불리언값, 즉 true 또는 false를 반환한다. 함수에서 true를 반환하면 새 배열에 추가되고, 그렇지 않으면 추가되지 않는다. 예제에서 원본 배열의 문자열 "**"은 새 배열을 작성할 때 걸러진다.

IE8을 제외한 IE9와 대부분의 최신 브라우저에서 지원한다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter