Я работаю над получением случайного массива из файла. json в React. Я использую это, чтобы сделать карты, и хочу, чтобы карт было ровно 16 карт, где каждое число отображается дважды. Я использую Set
, чтобы сохранить его уникальность, затем создаю массив, но не могу понять, как вызвать l oop, чтобы завершить его, когда размер набора равен 8. На данный момент у меня это сложно кодируется как восемь, но если есть дубликат, набор оказывается слишком маленьким, что я понимаю почему. Кажется, у l oop нет доступа к размеру Set, но я не знаю, как это сделать. Я попытался this.state.practiceCards.size < 8
, но это не сработало.
Как мне закончить l oop?
constructor(props) {
super(props);
this.state = {
cards,
practiceCards: new Set(),
practiceCardsArray: [],
}
this.addPracticeCard = this.addPracticeCard.bind(this);
}
componentDidMount() {
this.addPracticeCard();
}
addPracticeCard() {
for (let i = 0; i < 8; i++){
const randIndex = Math.floor(Math.random() * cards.length);
this.setState(state => ({
practiceCards: state.practiceCards.add(cards[randIndex]),
practiceCardsArray: [...state.practiceCards, ...state.practiceCards]
}))
}
}