0

以下のコードを試して、setInterval Id を一意のキーの値として関連付け配列に格納できるかどうかを確認し、一意の値をキーとして使用して、以下のように呼び出された関数で間隔を停止し、setInterval を取得する必要があります。その値としてのID:

    //random unique values to be used as key
    var list = [];
    for (var i = 0; i < 10; i++) {
        uniqueID = Math.floor(Math.random() * 90000) + 10000;
        list[i] = uniqueID;
    }

    //function that gets called by interval
    var runCount = 0;
    function timerMethod(id) {
        runCount++;
        if (runCount > 3) {
            console.log('done with interval where key was ' + id + ' and value was ' + id_array[id]);
            clearInterval(id_array[id]);
        }
    }

    //stores the key => setIntervalId combo
    var id_array = {};

    //fire the interval
    var tempId = list[0];
    id_array[tempId] = setInterval(function () {
        timerMethod(tempId);
    }, 3000);


    //fire the second bast*rd
    var tempId = list[1];
    id_array[tempId] = setInterval(function () {
        timerMethod(tempId);
    }, 3000);

コードが機能しません-どういうわけかtempId、関数に渡した2番目が取得されず、常に最初のキーを使用して間隔を停止しようとしていますか? これを正しく機能させる方法はありますか?

4

3 に答える 3