티스토리 뷰


관리서버 대시보드 만드는 과정에서 
자동으로 1 - 2 - 3 -4 -> 1 - 2 - 3 - 4 이런식으로 계속 화면이 로테이션이 되야할때

더 좋은 방법이 있겠지만 일단 내가 구현한건
for문을 배열길이의 -1 한 만큼 돌려서
현재 index와 배열의 index가 같을 경우에는 현재 index를 다음 index로 지정해주고
현재 index가 배열의길이 -1과 같을때 ( 배열의 끝의 하나 앞 ) 는 현재 index를 배열의 첫번째 index로 지정해주어
계속 계속 반복되게 해주었다. 



1
2
3
4
5
6
7
8
9
10
11
12
13
14
if(!DashboardController.isDraggable()){
            for(var j=0;j<this.hostIdxParam.length-1;j++){
                if(this.hostIdx == this.hostIdxParam[j]){
                    this.hostIdx = this.hostIdxParam[j+1];
                    this.dataParam.host_index = this.hostIdx;
                    break;
                }else if(this.hostIdx == this.hostIdxParam[this.hostIdxParam.length-1]){
                    //hostIdx가 배열의 마지막일때
                    this.hostIdx = this.hostIdxParam[0];
                    this.dataParam.host_index = this.hostIdx;
                    break;
                }
            }
        }
cs




for문이 아닌  다른방법으로 변경하였는데

전체 개수를 구하고 현재 index +1 한 값을 전체 개수로 나눈 나머지를 구하면 
그 나머지는 다음 index가 되고 마지막 index인 경우 저대로 구하면 첫번째 index가 나오게 된다. 


1
2
3
4
5
6
    this.server_cnt = this.compo_dataset.server_datasets.length;
    var index = (this.focus_index+1)%this.server_cnt;
 
    this.focus_index = index;
 
    this.dataParam.host_index = this.compo_dataset.server_datasets[index].host_index;
cs



댓글