У меня есть массив, который обновляется время от времени, поэтому размер массива произвольный.
Я хотел бы получить неповторяющийся индекс из массива (примечание: не элемент в индексе,но только индекс).
Программа запускается каждые 1000 мс, и я пытаюсь получить уникальный индекс.
Это то, что у меня есть:
randomIndex = data => {
let rand = Math.floor(Math.random() * data.length);
if (rand !== Math.floor(Math.random() * data.length)) {
return rand;
} else {
return Math.floor(Math.random() * data.length);
}
};
И все же возвращает двойные значения
Редактировать
Предположим, у нас есть data = ['bob', 'charli', 'kate']
Я хотел бы получитьслучайный индекс ei 0 или 1 или 2.
Поскольку у меня есть setInterval(() => {}, 1000)
, в настоящее время я получаю тот же индекс после 1000 с, что не то, что я хочу.Поэтому на каждую секунду мне нужен другой индекс.
Обновление
Обратите внимание, что когда я говорю «нет дубликатов», я имею в виду, что я не хочу, чтобы один и тот же индекс появлялся последовательно.
Так, например, после 1 с у нас есть индекс 1, затем через 1 с я хочу либо 0, либо 2.