Javascript를 사용하면서 데이터를 핸들링할 때, 가장 많이 사용했던 함수 Filter에 대해 다룹니다.
구성요소가 Object타입으로 구성된 Array를 다룰 때 유용합니다.
더불어, String 값으로 구성된 Array에서의 Filter를 이용한 Distinct 기법을 소개합니다.
1. 문법
"배열객체명".filter( function( "배열원소명" ) { return [조건] } );
- "배열원소명" : 사용자 지정가 지정하는 변수명이며, function(){}의 "조건" 부에서 활용하여 사용합니다. 이 값은 배열객체의 각각의 원소에 해당합니다.
2. 예제
다음 예제는 "DataList" 배열객체에서 TYPE이 "A"인 배열원소만들 추출하는 사용법입니다.
var DataList = []; DataList.push({ SEQNO : "0", NAME : "Hong", VALUE : "100", TYPE : "A" }); DataList.push({ SEQNO : "1", NAME : "Kim", VALUE : "200", TYPE : "A" }); DataList.push({ SEQNO : "2", NAME : "Lee", VALUE : "1100", TYPE : "B" }); DataList.push({ SEQNO : "3", NAME : "Park", VALUE : "100", TYPE : "C" }); DataList.push({ SEQNO : "0", NAME : "Hong", VALUE : "100", TYPE : "A" }); console.log("DataList Example :: "); console.log(DataList); console.log("DataList Distinct Example :: "); console.log(DataList.filter(function(rowData){ return rowData.TYPE == "A"}));
3. 결과
총 5개의 배열원소 중 TYPE이 "A"인 3개의 원소만 추출된 것을 볼 수 있습니다.
4. Filter를 이용한 Distinct (중복제거)
예제와 같이 "Distinct" 함수를 정의한 후 Filter의 function(){} 위치에서 호출합니다.
- Array<String>과 같은 포맷에서 적용됩니다.
(위에서 봤던 Array<Object> 포맷에서의 Distinct는 다음 포스팅에서 다루겠습니다.😅)
function Distinct(value, index, self) { return self.indexOf(value) === index; } var sample = []; sample.push("A"); sample.push("B"); sample.push("C"); sample.push("A"); sample.push("A"); console.log("Sample Example :: " + sample); console.log("Sample Example :: " + sample.filter(Distinct));
0 댓글