2013-04-14 3 views
0

다음 자바 스크립트 함수가 경고에서 "정의되지 않음"을 반환하는 이유는 무엇입니까?자바 스크립트에서 정의되지 않은 반환

다음은하지 validateUserSelectedExperType 함수에서, 중첩 된 함수에서 반환있는 snipptet

var tests = validateUserSelectedExperType(userSelectedOptioName); 
alert(tests); 

코드

function validateUserSelectedExperType(inp) { 
    $.each(splitter.getFirstPaneContent(), function (index, item) { 
     var splitterinner = splitter.getFirstPaneContent()[index]; 
     var getLabel = splitterinner.getFirstPaneContent()[0]; 
     if (getLabel.getText() == inp) { 
      return true; 
     } else { 
      return false; 
     } 
    }); 
} 

답변

2

입니다. 부울을 설정하고 그 값을 대신 업데이트하십시오. 마지막에, 그것을 돌려 : 당신의 return$.each() 익명 함수 내 때문이다

function validateUserSelectedExperType(inp) { 
    var flag = false; 
    $.each(/* ... */, function (index, item) { 
     // ... 
     if (getLabel.getText() == inp) { 
      flag = true; 
      return false; 
     } 
    }); 
    return flag; 
} 
+0

[this] (http://jsfiddle.net/k4ZLP/)도 유용 할 것입니다. 기본적으로 당신이하고있는 것에 상응하는 것입니다. – jeremy

+0

이 방법으로'flag'는 단지 마지막 반복 검사 결과를 포함합니다. 이전 반복은 쓸모가 없습니다. – Uby

+0

@Uby 업데이트 – 0x499602D2

0

합니다. 해당 기능에서 false을 반환하면 each 루프가 중지됩니다.

주 기능에 대해 뭔가를 반환해야합니다 (코드 논리를 이해할 수 없어서 사용자를 도와 드릴 수 없습니다).

관련 문제