【问题标题】:What is the best variable type for a soccer result? [closed]足球结果的最佳变量类型是什么? [关闭]
【发布时间】:2019-09-22 10:45:27
【问题描述】:

我想构建一个预测足球结果的程序。现在我想知道,将足球结果存储在变量中的最佳方法是什么。 我想到了几个不同的选择,但可能还有其他选择:

  1. 在字符串中,例如“2:1”
  2. 在数组中,例如[2, 1]
  3. 在一个对象中,例如{主队:2,客队:1}

我不必对结果进行迭代,我只需要以一种简单的方式读取值。

我目前正在使用 JavaScript。我听说 ES6 中有新类型的数组,比如 Maps 和 Sets,但我还没有读过它们。使用这些数组类型更好吗? 您认为哪种方法最好或有其他更好的方法吗?

【问题讨论】:

    标签: javascript arrays object variables types


    【解决方案1】:

    如果您能提供更多关于您想要实现的目标的背景信息,那就太好了。 正如您所提到的,您不会迭代结果,那么当字符串或数组的长度增加时,您将如何获取值?如果总是只有两个值"2:1", [2,1], {homeTeam: 2, awayTeam: 1},那么你个人偏好如何获取这些值,时间复杂度总是 O(1)。例如,您可以从字符串const strToArr = "2:1".split(':'); strToArr[0]strToArr[1]、数组const arr = [2,1]; arr[0]arr[1] 或对象cont obj = {homeTeam: 2, awayTeam: 1}; obj.homeTeamobj.awayTeam 中获取值...当然您也可以使用Map:@ 987654328@ 对于 Set 请记住,它存储唯一值,除非您正确处理,否则可能不是一个好的选择

    【讨论】:

      【解决方案2】:

      如果您使用数组,则顺序是有保证的,但您需要知道它在哪个顺序 - [away, home][home, away]。出于这个原因,使用对象更容易,您也可以相当简单地确定输赢 - 您可以使用 JSON 将数据发送到其他区域:

      const result = { home: 2, away: 1 };
      console.log(`The home team scores ${result.home}`);
      console.log(`The away team scored ${result.away}`);
      const winner = result.home > result.away ? "Home" : (result.away > result.home ? "Away" : "Draw");
      console.log(winner == "Draw" ? `It was a draw!` : `The winner is the ${winner} team`);

      【讨论】:

      • 2 cmets: 1. 由于通常情况下,结果无论如何都以“home”:“away”顺序表示,我认为数组不是问题。 2.你对使用set/map有什么了解?这些是可行的选择吗?
      • 问题不在于我们说出分数的顺序。问题在于使开发人员更容易理解代码。在 Array 和 Object 之间切换几乎没有内存大小的差异,但可读性差异很大。
      • @IceRevenge 但是如果接收数据的人不知道数组的顺序怎么办? Set 类似于数组,但 Map 也可以工作,因为它是基于键值的系统。
      • @Intervalia 好的,这是有道理的。我没有与其他开发人员合作,只是为了好玩,但在这些情况下使用对象可能是一个好习惯。
      猜你喜欢
      • 2013-08-15
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 2010-10-11
      • 1970-01-01
      • 2012-01-27
      相关资源
      最近更新 更多