Почему этот код пропускает добавление в список объектов? - PullRequest
0 голосов
/ 27 октября 2019

Этот код должен добавлять случайные числа в объект, создавая список элементов с уникальными идентификаторами. Код проверяет каждый rnd #, чтобы увидеть, есть ли он уже в списке.

Работает нормально, но через случайное количество времени он добавится к счетчику, но пропускает добавление элемента в список.

Я просто что-то здесь упускаю?

Спасибо

jsfiddle здесь: https://jsfiddle.net/jelder/en0pmdtb/

console.log("Starting...");
var rnd = 0;
var list = {};
var count = 0;

var loop = setInterval(function() {
    //Genereate rnd number and check if it is in the list
    check1: while(true){
        rnd = parseInt(Math.random()*10000);
        if (Object.keys(list).indexOf(rnd)>=0){
            console.log('dupe:'+count);
            continue check1;
        } else {
            break check1;
        }
    }

    //Add to list
    list[rnd] = {
        'a':count
    };

    //Add to counter
    count++;

    //Debug - Count not mactching list length
    if (count != Object.keys(list).length) { 
        console.log(count + " : "+Object.keys(list).length);
        clearInterval(loop);
    }

    //Stop at limit
    if(count >= 11000) {
        console.log('hit limit');
        clearInterval(loop);
    }
},50);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...