所以我设置了一个像this这样的字符串。这是一个JSON字符串,以这种格式存储数据:
{
"players": {
<playerID>: {
"presets": [{
"title": <title>,
"presetId": <id>,
"preset": {<presetData>},
"votes": <voteCount>,
"date": <creationDate>
}]
}
}
我希望能够输入presetId
,并获得playerId
作为输出(基本上找出哪个玩家具有该ID的预设)。同样的事情可以通过循环每个玩家和每个玩家的预设来实现,并查看该预设是否具有正确的ID,但我需要做很多事情,我觉得这将是相当昂贵的。正则表达式会更好吗?我会用什么样的表达方式?
答案 0 :(得分:0)
正则表达式?不,就在那里停下来。
您可以做的是首先展平数据,或者首先将数据平放。
[{
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);