我有一个多维数组(与玩家匹配的列表),我需要过滤此数组才能获得唯一的玩家对象。
以下代码有效但我预期的结果不同。
Const aPlayer=matchs
.filter(match => match.players.find(player => player.id
===id))
变量aPlayer包含此播放器的所有匹配项。
但我只需要玩家对象数据。
答案 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);