본문 바로가기

대외활동/TNS Internship

100127 TNS Korea Internship (32/53)

728x90

1.

GetTopRankCode(rankQID)

사용자 삽입 이미지
Properties에서 Ranking을 선택하게 되면 open text 형식으로 숫자를 입력받게 되는데,
이 함수는 그 랭킹중에서 1위를 한 항목의 precode를 돌려준다.
사용자 삽입 이미지
이 출력 결과는 그걸 응용한 것으로, 
다음과 같은 code를 사용했다.
ShowAlert("당신이 가장 좋아하는 과일은 "+q[GetTopRankCode('q272')].label()+"입니다.")


2.

GetXRandSetFromSet(fromSet, nr)
주어진 셋(Multi Answer)으로부터의 프리코드 셋을 무작위로 배열한다.
이걸 응용하면 CAWI Checker 같은 기능을 하는 테스트 툴을 만들 수 있겠지. 
(nr은 섞을 MAX 값)


3.

function PickLowestFromArray(priorityArr, checkArr)

주어진 array에서 가장 낮은 우선순위(priority)를 가진 item을 찾아내주는 함수.
그렇지만 나의 실력부족인지, 단순한 오기인지 정확한 기능을 파악하기 힘들었고 
오류도 났다.
아래는 function의 code.
function PickLowestFromArray(priorityArr, checkArr)
{
    checkArr.sort();
    // DEBUG("checkArr = " + checkArr);
    var returnElement = null;
    var isMatched = false;
    for (var j=0; j < priorityArr.length && !isMatched; j++)
    {
        DEBUG("priorityArr.length : "+priorityArr.length);
        DEBUG("J : "+j);
        var currentPriority = priorityArr[j];
        currentPriority = parseInt(currentPriority, 10);
        // DEBUG("currentPriority  = " + currentPriority);
        for (var i=0; i < checkArr.length && !isMatched; i++)
        {
            var currentCheck = checkArr[i];
            currentCheck = parseInt(currentCheck, 10);
            // DEBUG("currentCheck = " + currentCheck );
            if (currentPriority == currentCheck)
            {
                returnElement = currentPriority;
                // DEBUG("***MATCHED! ***");
                isMatched = true;
                break;
            } // end if
        } // end i loop
    } // end j loop
    // DEBUG("returnElement = " + returnElement);
    return returnElement;
} // end function

중간의
        currentPriority = parseInt(currentPriority, 10);
        currentCheck = parseInt(currentCheck, 10);
이 부분이 오류를 내고 있었다.
사용시에는
var priorityArray = f("brands").categoryLabels();

var CheckArr = f("brands2").categoryLabels();

var NewArr = PickLowestFromArray(priorityArray, CheckArr);

이렇게 문항의 categoryLabels() 즉, 한글이나 영어를 받아오는데,
저 핑크색의 문장에서 그 한글, 영어를 10진수로 바꾸려고 하고 있다.
그러니 debug line을 돌리면
currentPriority = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentPriority = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentPriority = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentPriority = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentPriority = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentPriority = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentPriority = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
currentCheck = NaN
이렇게 나올 수 밖에...-_-;
결국 그 부분을 주석처리하고 돌리면
사용자 삽입 이미지
이렇게 첫번째 문항에서 우선순위를 정해준다.
그리고 두번째 문항에서 ...
사용자 삽입 이미지
이렇게 체크를 해주면 결과를
사용자 삽입 이미지
이렇게 돌려준다. 그런데 결과가.. 모르겠다. 
(아 이거 진짜 이상해ㅠㅠ)
priorityArr이나 checkArr을 말 그대로 priority 순서가 아닌 알파벳 순으로 정렬해준다.
다름아닌 .sort()를 사용하기 때문이다.
위의 화면에서 결과로 돌려주는 NewArr : Apple은 단순히 목록의 위쪽에 있는 것들 중에 두번째 문항에서 선택된 것일 뿐이다. (이게 왜 필요해-_-)


4.

PickRandomPrecodeFromSet(getSet)
일정한 set에 무작위로 선택된 값 하나를 돌려주는 함수.
2번에 나왔던 GetXRandSetFromSet(fromSet, nr)와 거의 흡사하다.
사용자 삽입 이미지
사과, 감, 귤, 오렌지, 파인애플을 선택하면
그 안에서만 random을 돌려서
사용자 삽입 이미지
이런 결과를 얻을 수 있다.
(물론 상기 Message box를 출력하기 위해선 몇 단계를 거쳐야 하지만 여기서는 생략)


728x90