3

私の関数を呼び出すときcheckIss()issFullArray.indexOf(issToCheck)常に。を返しますundefined。を実行し.length、の内容を出力しましたがissFullArray、なぜ機能しないのかわかりません。配列は私には問題ないように見えます。以下に示すように、私は明示的に配列として設定issArrayし、自分が返した配列をコピーしてみましたgetIssList()

function updateIss() {
    var issArray = [];

    var currService = current.u_business_service;
    var currIss = current.u_is_service;
    issArray = getIssList(currService).slice(); //getIssList() returns an arry
    if (checkIss(issArray, currIss) === false) {
        //do stuff
    }
}

function checkIss(issFullArray, issToCheck) {
    if (issFullArray.indexOf(issToCheck) < 0) {
        return false;
    } else {
        return true;
    }
}
4

1 に答える 1

2

配列をループして各値を比較し、一致する場合はtrueを返し、そうでない場合はfalseを返すのが最も簡単です。コードはそれほど多くなく、すべてのブラウザで機能します。

function checkIss(issFullArray, issToCheck) {
    for(i=0; i<issFullArray.length; i++) {
        if(issFullArray[i]==issToCheck) {
            return true;
        }
    }
    return false;
}
于 2013-02-05T12:30:08.380 に答える