Как создать l oop, чтобы собрать все 52 карты в полной колоде? - PullRequest
0 голосов
/ 30 января 2020

У меня есть два разных файла js, один для конструктора карт, а другой для колоды. Я пытаюсь создать функцию загрузки для объекта колоды, чтобы я мог загрузить 52 уникальных объекта карты, чтобы создать полную колоду, но я не уверен, как заставить l oop сделать это.

карта. js

function card(pRank, pSuit){
    this.rank = pRank,
    this.suit = pSuit,
    this.used = false;
}

колода. js

deck = {

    cardArray: [],

    load: function(){
        for(i=0; i<52; i++){
           this.cardArray.push(card);
            };
        }
    }

Ответы [ 2 ]

1 голос
/ 30 января 2020

Если структура следующая, вы можете сделать следующее

const ranks = ['ACE', 'KING', 'QUEEN', 'JACK', '10', '9', '8', '7', '6', '5', '4', '3', '2'];
const suits = ['SPADES', 'HEARTS', 'DIAMONDS', 'CLUBS'];

function card(pRank, pSuit){
    this.rank = pRank,
    this.suit = pSuit,
    this.used = false;
}

const cardArray = suits.reduce((cards, suit) => { return [
        ...cards,
        ...ranks.map((rank) => new card(suit, rank))
    ]
}, []);
0 голосов
/ 30 января 2020

легко понятный код.

var ranks = ['ACE', 'KING', 'QUEEN', 'JACK', '10', '9', '8', '7', '6', '5', '4', '3', '2'];
var suits = ['SPADES', 'HEARTS', 'DIAMONDS', 'CLUBS'];
var cards = [];
var m = 0;
var finalDeck = suits.map(function(i, j) {
  return ranks.map(function(k, l) {
    return new card(k,i)
  })
})

function card(pRank, pSuit) {
  this.rank = pRank,
    this.suit = pSuit,
    this.used = false;
}

console.log(finalDeck)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...