【问题标题】:Using JSON objects in 'if' statements?在“if”语句中使用 JSON 对象?
【发布时间】:2019-04-05 04:35:20
【问题描述】:

我正在为我的游戏服务器创建一个站点,并尝试使用 Steam API 显示用户信息。

$.getJSON('/steamapi', function(data) {

  document.getElementById("staff-inner").innerHTML = `${data.response.players.map(function(player) {

    return `

      <div class="player player-${player.steamid}">
      <div class="name">${player.personaname}</div>
      <div class="avatar"><img src="${player.avatarfull}"></div>
      <div class="role"></div>
      </div>

    `;
  }).join('')}`;

});

上面的代码工作正常。但是,我正在尝试做的(我认为这是最好的方法)是创建一个 if 语句,说明如果 ${player.steamid} 是我的 Steam ID,它会在 .role 中打印“所有者”,并打印“主持人',如果是其他的话。似乎这很简单,但我尝试的一切都给我留下了空白页。我不知道在这种情况下我会如何或在哪里写它。

【问题讨论】:

    标签: javascript jquery json if-statement getjson


    【解决方案1】:

    在模板字符串中,只允许使用表达式,不允许使用语句。 if 是一个声明;但是条件运算符 (?:) 具有几乎相同的语义。

    `...
    <div class="role">${player.steamid == 'Rex4748' ? 'Owner' : 'Moderator'}</div>
    ...`
    

    【讨论】:

      【解决方案2】:

      您可以在 return 语句之前声明一个变量并调用引用

      let role = player.steamid == '111' ? 'Owner' : 'Moderator'
      

      然后

      <div class="role">${role}</div>
      

      【讨论】:

        【解决方案3】:

        我没有足够的时间使用 steamAPI 进行测试,但我认为它会起作用:

        const appDiv = document.getElementById('app');
        
        const my_steam_id = 'Rex4748';
        
        const players = [{
          steamid: 'Rex4748',
          avatarfull: 'https://fakeimg.pl/50/',
          personaname: 'Joe Perez'
        },{
          steamid: 'notYou',
          avatarfull: 'https://fakeimg.pl/50/',
          personaname: 'NewGuy'
        }]
        
        function getPlayers(){
          let info_collected = [];
          players.map((player)=> {
            console.log(player.steamid);
            info_collected.push(`
              <div class="player player-${player.steamid}">
                <div class="name">
                  ${player.personaname}
                </div>
                <div class="avatar">
                  <img src="${player.avatarfull}">
                </div>
                <div class="role">
                  ${player.steamid == my_steam_id ? 
                    'Owner' : 
                    'Moderator'}
                </div>
              </div>
              <hr>
            `);
          })
          return info_collected.join('');
        }
        
        appDiv.innerHTML = getPlayers();
        

        笔:https://stackblitz.com/edit/using-json-objects-in-if-statements

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-02
          相关资源
          最近更新 更多