자바스크립트 return 값이 계속 undefined 로 찍힙니다!


(이우진) #1
$(document).on("keyup", "#seq_search", function() {
        if(searchSequence() !== false && ($('#seq_search').val()) != "") searchSequence();
        else printSequence();

        console.log(searchSequence()); // 디버깅 해보니 searcgSequence 함수 부분이 계속해서 false가 아닌 undefined 가 찍힙니다! 문제가 무엇인지 모르겠습니다!
});

function procSearchSequence() {
    var sequence = getSequence();
    var search = $("#seq_search").val().toUpperCase();
    var findSearchIndex = new Array();

    if("string" === typeof(search)) {
        if(sequence.match(search) == search) {
            for(var i=0; i<sequence.length; i++) {
                if(sequence.indexOf(search, i) != -1) {
                    var findIndex = sequence.indexOf(search, i);
                    findSearchIndex.push(findIndex);
                    i = findIndex;
                }
            }

            var initResult = new Array();

            for(var i=0; i<sequence.length; i++) {
                var skip = false;
                var cnt = 0;

                for(var j=0; j<findSearchIndex.length; j++) {
                    if(i == findSearchIndex[j]) {
                        initResult.push('<span class="seq_highlight" data-count="'+ (i+1) +'" data-search="yes">');

                        for(var h=0; h<search.length; h++) {
                            initResult.push(sequence[i+h]);
                            cnt++;
                        }
                        cnt--;

                        initResult.push('</span>');

                        skip = true;
                    }
                }

                if($('#seq_search').val() != "") i += cnt;

                if(skip === false) initResult.push('<span data-count="'+ (i+1) +'" data-search="yes">' + sequence[i] + '</span>');
            }

            initResult = initResult.join();
            initResult = initResult.replace(/,/g, "");

            return initResult;

        } else return false; // 여기가 문제의 부분입니다. 분명 return false를 보내주었는데 이러네요!
    }
}`

봐주셔서 정말 감사합니다 ㅠㅠ…
무엇이 문제인지 모르겠습니다!
검색한 값이 존재하지 않을 경우 return false 를 하게되는데 로그를 찍어보면 undefined로 출력이 됩니다! 도와주세요!!! ㅠㅠ


(Thomas) #2

searchSequence 가 없어서 생기는 문제아닌가요?
searchSequence는 어디에 선언되어 있나요?

머 그렇다 치고 간단하게는 if(window. searchSequence) 로 해결 할 수 있습니다.


(이우진) #3

와… 정말 멍청한 실수를 해버렸네요… 감사합니다… 함수 이름을 잘못썼습니다. 밤새며 코딩을 하니 이런일이 생기네요 하하; 덕분에 해결했습니다! 감사합니다! +_…