상세 컨텐츠

본문 제목

JavaScript - 조건을 매개변수로 넘겨주기 (ES5 filter)

개발/JavaScript

by 뉴에이스 2018. 12. 3. 17:11

본문

스크립트의 모듈화 - 함수이용
조건을 매개변수로 넘겨주는 경우

소스
var data = [ 3, 9, 27, 81, 43 ];

//30보다 큰 숫자들을 배열에 담는다
var rList = [];
for (var i = 0; i < data.length; i++) {
	if (data[i] > 30) {
		rList.push(data[i]);
	}
}
console.log("30보다 큰 값 : ", rList);

//10보다 작은 숫자들을 배열에 담는다
for (var i = 0; i < data.length; i++) {
	if (data[i] < 10) {
		rList.push(data[i]);
	}
}
console.log("10보다 작은 값 : ", rList);

//배열에서 조건에 맞는 데이터를 새로운 배열에 담아서 리턴
function arrFilter(data, cb) {
	var rList = [];
	for (var i = 0; i < data.length; i++) {
		if (cb(data[i])) {
			rList.push(data[i]);
		}
	}
	return rList;
}

//배열과, 조건을 넘겨주기, 조건을 함수에서 처리
//함수에서는 조건에 따라 ture, false가 반환
arrFilter([ 84, 11, 9, 43, 22 ], function(val) {
	return val < 10;
});
console.log("-------------------------------------------------");
console.log("10보다 작은 값 : ", arrFilter([ 84, 11, 9, 43, 22 ], function(val) {
	return val < 10;
}));
console.log("-------------------------------------------------");
console.log("30보다 큰 값 : ", arrFilter([ 84, 11, 9, 43, 22 ], function(val) {
	return val > 30;
}));

//Es5 에서 추가된 함수 : filter
/*
 var arr = [1,2,3,4,5];
 arr.filter;
 */
//비슷한 문법으로 forEach - 01_basic/test09_2.js 참고
var result = [ 1, 2, 3, 4, 5 ].filter(function(val) {
	return val > 2;
});
console.log("2보다 큰 값 : ", result);

결과
30보다 큰 값 :  [ 81, 43 ]
10보다 작은 값 :  [ 81, 43, 3, 9 ]
-------------------------------------------------
10보다 작은 값 :  [ 9 ]
-------------------------------------------------
30보다 큰 값 :  [ 84, 43 ]
2보다 큰 값 :  [ 3, 4, 5 ]

관련글 더보기

댓글 영역