Я новичок в программировании и javascript, и у меня есть вопрос, с которым я уже немного боролся. Я пытаюсь создать карточную игру и иметь объект карты, который возвращает картографическое представление формата (карточка #, например, 5, Hearts). Я открываю карточку в начале программы и проверяю, что карта была уникальной (т. Е. Уже не использовалась). У меня есть следующая структура:Невозможно получить уникальные значения в карточном массиве
var usedCards= [];
function dealCards() {
for (i = 0; i < 3; i++)
{
var card = createUniqueCard();
usedCards.push(card.cardRepresentation);
}
}
function createUniqueCard() {
do {
var newCard = new Card();
}
while (usedCards.indexOf(newCard.cardRepresentation) != -1);
return newCard;
}
Это все еще возвращает мне дубликаты карт в моем массиве usedCards. Может ли кто-нибудь указать на мою логическую ошибку?
Благодаря
um заменяет .indexOf() звучит хорошо. Можете ли вы указать мне, где я могу научиться это делать? –
Я думаю, что вам лучше создавать все возможные карты заранее, а затем случайным образом выбирать из них - если вы храните ссылки на эти карты, а не генерируете новые, вы можете сравнить их или использовать '.indexOf()' - но в любом случае, если вы «Расскажите мне, какова структура ваших объектов« Card »и« cardRepresentation »- я мог бы обновить свой вопрос простым примером. – nnnnnn