React multidimensonal数组过滤/查找

时间:2017-12-15 12:55:05

标签: reactjs react-native multidimensional-array filter

我有一个多维数组(与玩家匹配的列表),我需要过滤此数组才能获得唯一的玩家对象。

以下代码有效但我预期的结果不同。

Const aPlayer=matchs
  .filter(match => match.players.find(player => player.id     
 ===id))

变量aPlayer包含此播放器的所有匹配项。

但我只需要玩家对象数据。

1 个答案:

答案 0 :(得分:1)

我不确定您的数据是否构成如下:

Matches: List<Match>
Match:   {
    ...,
    players: List<Player>
}
Player: {
   id: Index,
   ...
}

如果是这样,你可以这样做:

// still contains duplicates, but that's not the issue here
const allPlayers = matchs
    .map(x => x.players)
    .reduce(x => (dest, val) => dest.concat(val), []);

const player = allPlayers.find(x => x.id === id);