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が、これは値のみを比較し、関数に渡された元の引数の名前は比較しません。どんな助けでもいただければ幸いです。

4

2 に答える 2

1

できたとしても、そうすべきではありません。照合する配列を別の引数として渡すだけです。

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

    markMatches(listToMark)
}
于 2012-11-18T18:08:56.923 に答える
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;
    }
}
于 2012-11-18T18:11:40.097 に答える