如何实现2参数查找表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现2参数查找表相关的知识,希望对你有一定的参考价值。

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

              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]);

谢谢你提供的所有帮助!

答案

看起来像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'

以上是关于如何实现2参数查找表的主要内容,如果未能解决你的问题,请参考以下文章

python2根据索引表查找相应的录音片段拼接录音

ASP.net MVC 代码片段问题中的 Jqgrid 实现

JavaScript笔试题(js高级代码片段)

Python数据结构系列☀️《查找排序-基础知识》——知识点讲解+代码实现☀️

SkipList (跳跃表)解析及其实现

如何使用导航架构组件查找子片段