본문 바로가기

Slack 채널 정리

forEach 의 콜백함수에 param 넘기는 예

 

// 기존
setCurrentTab:function(){
	var ptrCtgyCd0 = naw("#ptrCtgyCd0").val();
	var ptrCtgyCd1 = naw("#ptrCtgyCd1").val();
	if(ptrCtgyCd1 !== "" && ptrCtgyCd0 !== ""){
		user.setShowCurrentTab([0,1,2,3,4,5],true);
		user.setShowCurrentTab([6],false);
	}else{
		if(ptrCtgyCd1 !== ""){
			user.setShowCurrentTab([2,4,5],true);
			user.setShowCurrentTab([0,1,3,6],false);
			mTab.setCurrentTab(2);
		}else if(ptrCtgyCd0 !== ""){
			user.setShowCurrentTab([0,1,2,3],true);
			user.setShowCurrentTab([4,5,6],false);
			mTab.setCurrentTab(0);
		}else{
			user.setShowCurrentTab([6],true);
			user.setShowCurrentTab([0,1,2,3,4,5],false);
			mTab.setCurrentTab(6);
		}
	}
}

// 리팩토링 후
setShowHideTab:function(){
	var concatRole = naw("#ptrCtgyCdC").val() + naw("#ptrCtgyCdV").val();
	
	var tab = ["C", "C", "CV", "C","V", "V", "X"];
	function getTabGroup(param1) {
		var uf = function(p1, item, index) {
			var cond;
			if(["C", "V", "X"].indexOf(p1) >= 0) {
				cond = (item.indexOf(p1) >= 0);
			}
			else if (p1 === "CV") {
				cond = (item.indexOf("X") !== 0);
			}

			if(cond)
				showTabs.push(index);
			else
				hideTabs.push(index);
		};

		tab.forEach(uf.bind(null, param1));
	}

	var showTabs = [];
	var hideTabs = [];
	if(concatRole === "") concatRole = "X";

	getTabGroup(concatRole);
	if(["C", "V", "X"].indexOf(concatRole) >= 0) {
		mTab.setCurrentTab(showTabs[0]);
	}

	showTabs.forEach(function(tIdx) {
		mTab.showTab(tIdx);
	});
	hideTabs.forEach(function(tIdx) {
		mTab.hideTab(tIdx);
	});
}

'Slack 채널 정리' 카테고리의 다른 글

VDI 에서 메시지 전송  (0) 2019.11.27
암달의 법칙(Amdahl's law)  (0) 2019.11.27
groovy - db, http  (0) 2019.11.27
js - 제목 붙이기 애매한  (0) 2019.11.27
batch 스크립트에서 파일 탭으로 열기  (0) 2019.11.27