Как реализовать 'вложенный' для в javascript - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь достичь «вложенности» для l oop для своего класса, но, к сожалению, я не могу использовать && для Вот мой код javascript:

class Card {
    constructor(suit, card, value) {
        this.suit = suit;
        this.card = card;
        this.value = value;
    }
    showCardInfo() {
        console.log(`Suit: ${this.suit}, Name: ${this.nameCard}, Value: ${this.value}`)
    }

class DeckOfCard {
    constructor() {
        this.deck = [];
        let suits = ["spades", "diamonds", "clubs", "hearts"];
        let cards = ["Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"]
        let values = ["A", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K"];
        for (let suit of suits) {
            for (let card of cards) {
                this.deck.push(new Card(suit, card));
            }
        }
    }
}

deck = new DeckOfCard()
console.log(deck.deck)

это мой терминал when i console.log ()

 Card { suit: 'hearts', card: 'Ace', value: undefined },
  Card { suit: 'hearts', card: 'Two', value: undefined },
  Card { suit: 'hearts', card: 'Three', value: undefined },
  Card { suit: 'hearts', card: 'Four', value: undefined },
  Card { suit: 'hearts', card: 'Five', value: undefined },
  Card { suit: 'hearts', card: 'Six', value: undefined },
  Card { suit: 'hearts', card: 'Seven', value: undefined },
  Card { suit: 'hearts', card: 'Eight', value: undefined },
  Card { suit: 'hearts', card: 'Nine', value: undefined },
  Card { suit: 'hearts', card: 'Ten', value: undefined },
  Card { suit: 'hearts', card: 'Jack', value: undefined },
  Card { suit: 'hearts', card: 'Queen', value: undefined },
  Card { suit: 'hearts', card: 'King', value: undefined },

Как я могу добавить значение для каждой карты?

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Вам нужен classi c l oop для индекса, чтобы получить элементы из обоих массивов одинаковой длины.

for (let index = 0; index < cards.length; index++) {
    this.deck.push(new Card(suit, cards[index], values[index]));
}

И реализация value в Card.

class Card {
    constructor(suit, card, value) {
        // ...
        this.value = value;
0 голосов
/ 07 мая 2020

Если вы знаете, что каждый индекс карты будет правильно отображаться на индекс его значения, я бы рекомендовал переключиться с for in на a

for(i = 0; i < cards.length; i++) {
  this.deck.push(new Card(suit, cards[i], values[i]));
}

Однако вы могли также измените карты из массива строк на массив объектов, каждое из которых содержит два значения, например let cards = [{card: "Ace", value: "A"}, {card: "Two", value: 2}, ...], затем используйте то же самое для в l oop и получите доступ к card.card и card.value

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