我有一个这样设置的字符串。这是一个JSON字符串,以以下格式存储数据:
{
"players": {
<playerID>: {
"presets": [{
"title": <title>,
"presetId": <id>,
"preset": {<presetData>},
"votes": <voteCount>,
"date": <creationDate>
}]
}
}
我希望能够输入presetId
,并获得playerId
作为输出(基本上找出哪个玩家具有该id的预设)。同样的事情也可以通过循环每个玩家和每个玩家的预设来实现,看看这个预设是否有正确的id,但我需要经常这样做,而且我觉得这样做的成本很高。正则表达式会更好吗?我会用什么样的表达呢?
正则表达式?不。到此为止
你能做的是首先将数据平铺,或者首先将其平铺。
[{
playerId: ...,
...
presetId: ...,
},{
playerId: ...,
...
presetId: ...,
}]
假设预设ID是唯一的,可以方便地使用array.filter
或array.find
。
var players = flatData.filter(player => player.presetID === ID_TO_FIND);
// or
var player = flatData.find(player => player.presetID === ID_TO_FIND);