2012-11-18 6 views
0

다른 jQuery 함수를 호출하고 다른 인수를 전달하고 싶습니다. 전달한 인수는 원래 함수에 전달 된 인수의 이름에 따라 다릅니다. 그래서 나는 다음과 같은 것을 가질 수 있습니다 :어떤 인수가 함수에 전달되었는지 확인하는 방법

matchedNumbers1 = compareArrays(userNumbers, winningNumbers1, matchedNumbers1); 
matchedNumbers2 = compareArrays(userNumbers, winningNumbers2, matchedNumbers2); 
matchedNumbers2 = compareArrays(userNumbers, winningNumbers3, matchedNumbers2); 

//COMPARE INPUTTED ARRAY OF NUMBERS TO WINNING ARRAYS OF NUMBERS 
    function compareArrays (userInput, winningNums, matches) { 
     matches = 0; 
     allMatchedNumbers.length = 0; 
     $(userInput).each(function(i) { 
      $(winningNums).each(function(j) { 
       if (userInput[i] == winningNums[j]) { 
        allMatchedNumbers[matches] = userInput[i]; 
        matches++; 
       } 
      }); 
     }); 
     switch (winningNums) { 
      case 'winningNumbers1': 
       alert("!!!!!"); 
       markMatches(ListItems1); 
       break; 
      case 'winningNumbers2': 
       markMatches(ListItems2); 
       break; 
      case 'winningNumbers3': 
       markMatches(ListItems3); 
       break; 
     } 
     return matches; 
    } 

바라기를 위 코드는 내가 무엇을하려고하는지 명확하게 보여줍니다. switch 문을 사용하여 시도했지만 함수에 전달 된 원래 인수의 이름이 아닌 값만 비교합니다. 어떤 도움을 주시면 감사하겠습니다.

+0

당신이 인수에 전달 된 변수의 이름을 의미합니까 : 그냥 다른 인수로에 대해 일치 할 배열을 전달? 나는 당신이 그것을 할 수 있다고 생각하지 않는다. –

+1

당신이 당신의 _problem_을 기술하고 그것을 풀기 위해 사용하려는 접근법을 설명 할 수있을뿐만 아니라 그것은 정말 좋을 것이다. – raina77ow

답변

1

가능한 경우에도 그렇게해서는 안됩니다.

function compareArrays(userInput, winningNums, matches, listToMark) { 
    ... 

    markMatches(listToMark) 
} 
+0

어쩌면'winningNums, matches, listToMark'에 대한 속성을 가진 객체를 생성하고 세 개의 관련 매개 변수 대신 전달할 수 있습니다. –

0
function winningNumbers1(){ 
    var result = 1; 
    return {result:result, fname: 'winningNumbers1'}; 
} 

function winningNumbers2(){ 
    var result = 2; 
    return {result:result, fname: 'winningNumbers2'}; 
} 

function compareArrays (userInput, winningNums, matches) { 
    var result = winningNums ? winningNums() : null; 
    if(result) 
    switch(result.fname){ 
     case 'winningNumbers1': 
     // action 
      break; 
     case 'winningNumbers2': 
     // action 
      break; 
    } 
} 
관련 문제