首页 > 解决方案 > JS 对象更改为 true,仍视为 false

问题描述

当将对象的值设置为 true 时,它​​看起来似乎改变了它,但我仍然无法使用它(因为它保持为 false)。

validateNextMove() {
    Card.setArrayNextMoveValid(this.cardRepository.findAll(), false);
    let client = this.clientRepository.findByTurn(true);
    let provjera = 0;
    if (client instanceof UNOClient) {
      let cards = client.getCards();
      for (let i = 0; i < cards.length; i++) {
        if (this.cardCanBePlaced(cards[i])) {
          provjera++;
          cards[i].setNextMoveValid(true);
          console.log(cards[i].getNextMoveValid());
          console.log(provjera);
        }
      }
      if (provjera == 0) {
        for (let i = 0; i < cards.length; i++) {
          cards[i].setNextMoveValid(true);
          console.log(cards[i].getNextMoveValid());
          console.log(provjera);
        }
      }

我该如何解决 ?

标签: javascriptnode.js

解决方案


这是我检查是否可以放置卡的方法:

cardCanBePlaced(card){
        let current = this.discardDeck.slice(-1)[0];
        
        if(typeof current === 'undefined'){
            return true;
        }       
     
        //Check if card is allowed
        if(
            card.getColor() === current.getColor()
            ){

                return true;
        }

        return false;
    }

如果在上面的 mtehod 我添加全局变量来计数是否有任何可用它仍然不能使它工作,像这样(计数器 ++,如果有该颜色的可用卡)

if(card.getColor()!= current.getColor() && counter==0){
                return true;
            }   

推荐阅读