地图功能内的特定地图功能

时间:2018-07-14 16:58:21

标签: javascript reactjs

我猜这里还有更多关于逻辑的问题。我正在努力实现这样的目标:

我有四个玩家:

const playersArray = ['player1', 'player2', 'player3', 'player4'];

他们每个人都互相比赛,但只有一次,没有复赛。

因此显然,玩家1不能与玩家1进行游戏。但是玩家1和玩家2之间也只有一个匹配。存在玩家1:玩家2,但我们不需要拥有玩家2:玩家1。

我试图在映射方法中使用映射方法,诸如此类:

playersArray.map(player1 => playersArray.map(player2 =>
  <ul>
    <li>{player1}</li> :
    <li>{player2</li>
  </ul>
))

避免玩家玩耍时的场景非常容易(有条件渲染)。但是对我来说,问题是要避免重新比赛。

谢谢!

2 个答案:

答案 0 :(得分:0)

playersArray.map((player, index) => 
  playersArray.slice(index+1).map(anotherPlayer => 
    (
      <ul>
        <li>{player} : {anotherPlayer}</li>
      </ul>
    )
  )
);

答案 1 :(得分:-1)

一种选择是遍历数组,并在主循环的当前索引之后在数组的其余部分上创建一个内部循环,以获取所有可能的匹配项:

示例

function App() {
  const playersArray = ["player1", "player2", "player3", "player4"];
  const content = [];

  for (let i = 0; i < playersArray.length; i++) {
    for (let j = i + 1; j < playersArray.length; j++) {
      content.push(
        <div>
          {[playersArray[i]]} : {playersArray[j]}
        </div>
      );
    }
  }

  return <div>{content}</div>;
}