【问题标题】:Passing a function which returns array as a parameter传递一个返回数组作为参数的函数
【发布时间】:2021-07-04 19:59:51
【问题描述】:

我有两个功能:

function drawCard(player) {

let imageCard = document.createElement('img');
let imageId = getRandomCard();
player['cards'].push(imageId);
imageCard.src = "static/image/PNG/"+ imageId + ".png";
return [imageCard, imageId];}

和

function showCard(card, id, player) {
document.querySelector(player['div']).appendChild(card);
upgradeScore(id,player);}

我正在尝试通过调用函数 drawCard()drawCard() 返回的值 imageCard 和 imageId /strong> 在 showCard() 参数中,但我找不到这样做的方法。有没有一种又好又整洁的方法呢?

【问题讨论】:

    标签: javascript arrays function


    【解决方案1】:

    是的,

    您可以使用数组解构将drawCard 的返回值作为showCard 的参数传递。

    let player =  [...]
    // ^ Assuming that you have declared the player variable elsewhere
    
    showCard(...drawCard(player), player)
    // The two values returned by the drawCard function are taken out of the array and passed in as arguments
    
    // Equivalent to showCard(drawCard(player[0]), drawCard(player[1), player)
    

    More on destructuring assignment

    【讨论】:

      【解决方案2】:

      看起来一切都取决于您的播放器变量。

      您可以将其用作唯一参数,然后调用 drawCard 方法。将返回的数组解构为两个变量,然后随意使用。

      function showCard(player) {
      let [card,id] = drawCard(player);
      document.querySelector(player['div']).appendChild(card);
      upgradeScore(id,player);}
      
      

      【讨论】:

        【解决方案3】:

        希望这有助于使您的需求有点不清楚。

        function drawCard(player) {
            let imageCard = document.createElement('img');
            let imageId = getRandomCard();
            player['cards'].push(imageId);
            imageCard.src = "static/image/PNG/"+ imageId + ".png";
            return [imageCard, imageId];
        }
        
        function showCard(card, id, player) {
            let imageCardAndImageId = drawCard(player);
            document.querySelector(player['div']).appendChild(imageCardAndImageId[0]);
            upgradeScore(imageCardAndImageId[1],player);
        }
        

        【讨论】:

          猜你喜欢
          • 2021-04-21
          • 2018-04-09
          • 2021-04-10
          • 2021-02-08
          • 2021-04-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多