如何实现2参数查找表

问题描述 投票:-1回答:1

我正在尝试创建一个接受两个参数并返回该点存储的值的结构。沿着岩石,纸张,剪刀的东西。

              Rock(0)       Paper(1)      Scissors(2)

Rock(0)      "Tie"(0,0)    "Lose"(0,1)    "Win"(0,2)

Paper(1)     "Win"(1,0)    "Tie"(1,1)     "Lose"(1,2)

Scissors(2)  "Lose"(2,0)   "Win"(2,1)     "Tie"(2,2)

有没有办法以一种可以扩展到更大的表的方式来做到这一点?

我最初的想法是创建一个3D数组的数组,存储[x,y,value],但循环遍历每个数组似乎对于较大的表来说是昂贵的。

const x = Math.floor(Math.random() * 3);
const y = Math.floor(Math.random() * 3);

const array = [
    [0,0,'tie'],  [0,1,'lose'], [0,2,'win'],
    [1,0,'win'],  [1,1,'tie'],  [1,2,'lose'],
    [2,0,'lose'], [2,1,'win'],  [2,2,'tie']
  ];

const result = array.filter((point) => {
    if (x === point[0] && y === point[1]){
      return point
    }
  });

console.log(result[0][2]);

谢谢你提供的所有帮助!

javascript data-structures
1个回答
1
投票

看起来像2d阵列就是你所需要的:

const rock = 0
const paper = 1
const scissors = 2
const results = [
  [
    'tie',
    'lose',
    'win'
  ], [
    'win',
    'tie',
    'lose'
  ], [
    'lose',
    'win',
    'tie'
  ]
]

const result = results[rock][paper] // 'lose'
© www.soinside.com 2019 - 2024. All rights reserved.