I am trying to generate a random ID on a very explicit set of requirements.
There are 3 arrays itemsAvailable
, itemsSeen
, and itemsTaken
.
itemsAvailable
looks like this: [{ id: 1, ... }, ...]
an array of objects with various fields, the other fields don't matter for the purposes of this functionality, we are only concerned with the id
field. It is a number that is 1 -> X
, X increasing by 1 for each item present.
itemsSeen
is just an array of the ids that a user has seen, so if they saw ids for 1, 7, 16
it would look like itemsSeen = [1, 7, 16]
.
itemsTaken
is also just an array of the ids they have seen that they chose to take, for example, itemsTaken = [1, 16]
. They can only take items that have been present in itemsSeen
.
At the start of the function, a random id is generated based on the length of itemsAvailable
. Each item's id will match its index position.
If itemsSeen
or itemsTaken
includes the random id, generate a new one in the bounds of the length of itemsAvailable
until it is not present in either array.
When a number is generated and shown to the user, it should be added to itemsSeen
array. If that item is picked it should be added to itemsAvailable
array. Then get a random item from itemsAvaialbe
again.
code sandbox of what I have.
Aucun commentaire:
Enregistrer un commentaire