【问题标题】:How do I place a for loop inside a function?如何在函数中放置 for 循环?
【发布时间】:2014-05-15 20:58:07
【问题描述】:

我正在尝试在不使用 for 循环的情况下创建一副纸牌。我收到错误“Uncaught SyntaxError: Unexpected token for line 189”第 189 行是带有“createcards”的行

var deck = {
suit: suit = ["Diamond", "Heart", "Club", "Spade"],
name: name = ["Nine", "Ten", "Jack", "Queen", "King", "Ace"],
cards: cards = [],
createcards: for (var i = 0; i < suit.length; i++){
        for (var j = 0; j < name.length; j++){
        deck.cards.push(card(name[j], suit[i]))
    }
},

draw: function (player){
    randnumber = Math.floor((Math.random() * cards.length))
    player.push[cards[randnumber]];

}
};

【问题讨论】:

  • 你那里实际上没有函数......
  • 您的语法无效,请检查jshint.com 是否有错误

标签: javascript html function loops for-loop


【解决方案1】:

将cretaecards设置为匿名函数:

createcards: function(){
    for (var i = 0; i < deck.suit.length; i++){
            for (var j = 0; j < deck.name.length; j++){
            deck.cards.push(card(deck.name[j], deck.suit[i]))
        }
    }
},

【讨论】:

  • @PaulRoub:够真实的。作了相应的修改。
【解决方案2】:

您必须在字面量对象中定义一个函数。

var deck = {
suit: suit = ["Diamond", "Heart", "Club", "Spade"],
name: name = ["Nine", "Ten", "Jack", "Queen", "King", "Ace"],
cards: cards = [],
createcards: function() {
     for (var i = 0; i < suit.length; i++) {
        for (var j = 0; j < name.length; j++) {
           deck.cards.push(card(name[j], suit[i]))
        }
     }
 }
},

【讨论】:

    【解决方案3】:

    您应该像这样将 createcards 分配给匿名函数:

    createcards: function () {
        for (var i = 0; i < suit.length; i++) {
            for (var j = 0; j < name.length; j++) {
                deck.cards.push(card(name[j], suit[i]));
            }
        }
    }
    

    【讨论】:

      【解决方案4】:

      使用一个函数,像这样:

      var deck = {
      suit: suit = ["Diamond", "Heart", "Club", "Spade"],
      name: name = ["Nine", "Ten", "Jack", "Queen", "King", "Ace"],
      cards: cards = [],
      createcards: 
          function() {
              for (var i = 0; i < suit.length; i++){
                  for (var j = 0; j < name.length; j++){
                      deck.cards.push(card(name[j], suit[i]))
                  }
              } 
          },
      draw: function (player){
          randnumber = Math.floor((Math.random() * cards.length))
          player.push[cards[randnumber]];
      
      }
      

      };

      你可以像这样调用 Object 内部的函数:

      deck.createcards();
      

      但我建议您查看以下行:

      deck.cards.push(card(name[j], suit[i]))
      

      因为这里没有功能卡……

      【讨论】:

        猜你喜欢
        • 2016-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        • 1970-01-01
        • 2016-05-07
        相关资源
        最近更新 更多