足球结果的最佳变量类型是什么?

时间:2019-05-03 21:38:03

标签: javascript arrays object variables types

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

  1. 以字符串形式例如“ 2:1”
  2. 在数组中[2,1]
  3. 在对象中,例如{homeTeam:2,awayTeam:1}

我不必遍历结果,只需要简单地读取值即可。

我当前正在使用javascript。我听说ES6中有新类型的数组,例如Maps和Sets,但我还没有读懂它们。使用这些数组类型更好吗? 您认为哪一个最好,或者还有其他更好的方法?

2 个答案:

答案 0 :(得分:3)

如果使用数组,则可以保证顺序,但是您需要知道其顺序-[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`);

答案 1 :(得分:0)

如果您可以提供您想要实现的目标的更多背景信息,那就太好了。 正如您提到的那样,您不会迭代结果,那么当字符串或数组的长度增加时如何获取值?如果始终只有两个值"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:const map = new Map(); map.set('homeTeam', 2); map.set('awayTeam', 1); map.get('homeTeam'); map.get('awayTeam');对于Set,请记住,它存储唯一值,除非您正确处理它,否则不是一个好选择